* Bug #13853 fixed - plzr() returned wrong results for discrete-time systems with... 93/17093/2
Charlotte HECQUET [Mon, 24 Aug 2015 08:46:49 +0000 (10:46 +0200)]
Change-Id: Id3171738d2304e48b0b8f12acfa69ccce9b38e59

scilab/CHANGES_6.0.X
scilab/modules/cacsd/macros/plzr.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_13853.dia.ref [new file with mode: 0644]
scilab/modules/cacsd/tests/nonreg_tests/bug_13853.tst [new file with mode: 0644]

index 6a5b0e0..e098641 100644 (file)
@@ -37,6 +37,8 @@ Scilab Bug Fixes
 
 * Bug #13843 fixed - Scilab crashed when polarplot and plot2d were called with wrong strf value.
 
+* Bug #13853 fixed - plzr() returned wrong results for discrete-time systems with a numeric time step.
+
 * Bug #13872 fixed - Non regression test added for unique function (the indices returned were wrong)
 
 * Bug #13890 fixed - getd did not return loaded symbols in previous scope.
index 9bbbc0d..06b4c3f 100644 (file)
@@ -107,7 +107,7 @@ function plzr(a,b,c,d)
         legs=[gettext("Poles");legs]
         lhandle=[e;lhandle]
     end
-    if dt == "d" then
+    if dt == "d" | type(dt) == 1 then
         ax.grid=ones(1,3)*color("gray")
         ax.box = "on";
         xarc(-1,1,2,2,0,360*64)
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_13853.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_13853.dia.ref
new file mode 100644 (file)
index 0000000..17ac69f
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 13853 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13853
+//
+// <-- Short Description -->
+// plzr() thinks discrete-time systems with a numeric time step are continuous-time systems
+s=poly(0,'s');
+n=[1+s, 2+3*s+4*s^2, 5; 0, 1-s, s];
+d=[1+3*s, 5-s^3, s+1;1+s, 1+s+s^2, 3*s-1];
+h=syslin(0.1, n./d);
+plzr(h);
+a=gca();
+assert_checkequal(a.children(2).type, "Arc");
+assert_checkequal(a.children(2).data, [-1 1 2 2 0 360]);
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_13853.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_13853.tst
new file mode 100644 (file)
index 0000000..6b7f3bc
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 13853 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13853
+//
+// <-- Short Description -->
+// plzr() thinks discrete-time systems with a numeric time step are continuous-time systems
+
+s=poly(0,'s');
+n=[1+s, 2+3*s+4*s^2, 5; 0, 1-s, s];
+d=[1+3*s, 5-s^3, s+1;1+s, 1+s+s^2, 3*s-1];
+h=syslin(0.1, n./d); 
+plzr(h);
+a=gca();
+assert_checkequal(a.children(2).type, "Arc");
+assert_checkequal(a.children(2).data, [-1 1 2 2 0 360]);