* Bug 16019 fixed: polarplot(1:10, rand(10,3)) yielded an error 08/20908/3
Samuel GOUGEON [Mon, 25 Mar 2019 11:54:26 +0000 (12:54 +0100)]
  http://bugzilla.scilab.org/16019

Change-Id: I68f6143e2c75f4d6b89c5b540e6b7489892f6647

scilab/CHANGES.md
scilab/modules/graphics/macros/polarplot.sci
scilab/modules/graphics/tests/nonreg_tests/bug_16019.tst [new file with mode: 0644]

index 23e2782..f630898 100644 (file)
@@ -230,6 +230,7 @@ Bug Fixes
 * [#16013](http://bugzilla.scilab.org/show_bug.cgi?id=16013): Load previously saved environment with "File/Load environment" menu failed.
 * [#16014](http://bugzilla.scilab.org/show_bug.cgi?id=16014): after `x.a=1; x(:)=[]` x.a was an empty list.
 * [#16015](http://bugzilla.scilab.org/show_bug.cgi?id=16015): `intg(a,b,f)` called f(x) with x outside [a,b].
+* [#16019](http://bugzilla.scilab.org/show_bug.cgi?id=16019): `polarplot(x,Z)` yielded an error when x is a vector and Z a matrix.
 * [#16021](http://bugzilla.scilab.org/show_bug.cgi?id=16021): `tand([-90 90])` answered [Nan Nan] instead of [-Inf, Inf]. `cotd([-90 90])` answered [Nan Nan] instead of [0 0]. `1 ./cosd([-90 90])` answered [Inf -Inf] instead of [Inf Inf].
 * [#16026](http://bugzilla.scilab.org/show_bug.cgi?id=16026): For `atanh()`, neither the documentation pages nor the `m2sci` converter were up to date.
 * [#16051](http://bugzilla.scilab.org/show_bug.cgi?id=16051): undefined list elements could be of 2 distinct typeof "void" or "listundefined" according to the way they are created.
index 19ed338..88f3d44 100644 (file)
@@ -2,7 +2,7 @@
 // Copyright (C) INRIA
 // Copyright (C) 2010 - DIGITEO - Manuel Juliachs
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
-// Copyright (C) 2010, 2018 - Samuel GOUGEON
+// Copyright (C) 2010, 2018, 2019 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -27,6 +27,9 @@ function polarplot(theta,rho,style,strf,leg,rect)
     if size(rho,1)==1 then
         rho=rho(:),
     end
+    if size(theta,2)==1 & size(rho,2)>1 then
+        theta = theta * ones(rho(1,:));
+    end
     rm=max(abs(rho))
     x=rho.*cos(theta)
     y=rho.*sin(theta)
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_16019.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_16019.tst
new file mode 100644 (file)
index 0000000..c619d96
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2019 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+// <-- NO CHECK REF -->
+
+// <-- Non-regression test for bug 16019 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/16019
+//
+// <-- Short Description -->
+// polarplot(x,Z) yielded an error when x is a vector and Z is a matrix.
+
+x = (0:360)'/180*%pi;
+Z = [(0.5*(1 + cos(x)))  (0.5+(1 + cos(x)))]; 
+assert_checkequal(execstr("polarplot(x,Z)", "errcatch"), 0);