* Bug #14557 fixed - csim fail is the system has no state 19/18219/3
Serge Steer [Mon, 6 Jun 2016 13:08:32 +0000 (15:08 +0200)]
Change-Id: Ia42f0a30438d178bc4f8a9533f3b416a817fa38d

scilab/CHANGES.md
scilab/modules/cacsd/macros/csim.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_14557.dia.ref [new file with mode: 0644]
scilab/modules/cacsd/tests/nonreg_tests/bug_14557.tst [new file with mode: 0644]

index 3cd8fa9..a6592ae 100644 (file)
@@ -222,6 +222,8 @@ Bug Fixes
 
 ### In 6.0.0:
 
+* [Bug #14557](http://bugzilla.scilab.org/show_bug.cgi?id=14557) fixed - csim failed when the system has no state.
+
 * [Bug #14587](http://bugzilla.scilab.org/show_bug.cgi?id=14587) fixed - Datatip textbox wrong clipping when loaded from *.scg file.
  
 
index 7442ca4..dce3da5 100644 (file)
@@ -1,7 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) INRIA -
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) ???? - 2016 - Serge Steer - INRIA 
 //
 // 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.
@@ -55,11 +53,12 @@ function [y,x]=csim(u,dt,sl,x0,tol)
         warning(msprintf(gettext("%s: Input argument #%d is assumed continuous time.\n"),"csim",1));
     end
     //
-    [a,b,c,d]=sl(2:5);
+    [a,b,c,d]=abcd(sl);
     if degree(d)>0 then
         error(msprintf(gettext("%s: Wrong type for input argument #%d: A proper system expected\n"),"csim",1));
     end
-    [ma,mb]=size(b);
+    ma=size(a,1);
+    mb=size(d,2);
     //
     imp=0;step=0
     text="if t==0 then y=0, else y=1,end"
@@ -67,7 +66,7 @@ function [y,x]=csim(u,dt,sl,x0,tol)
     select type(u)
     case 10 then //input given by its type (step or impuls)
         if mb<>1 then
-            error(msprintf(gettext("%s: Wrong type for input argument #%d: A SIMO expected.\n"),"csim",1));
+          error(msprintf(gettext("%s: Wrong type for input argument #%d: A SIMO expected.\n"),"csim",1));
         end;
         if part(u,1)=="i" then
             //impulse response
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_14557.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_14557.dia.ref
new file mode 100644 (file)
index 0000000..00f4694
--- /dev/null
@@ -0,0 +1,13 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//<-- CLI SHELL MODE -->
+// <-- ENGLISH IMPOSED -->
+// Unit test for csim function
+S=ssrand(1,1,0);
+t=0:5;
+y=csim("step",t,S);
+operation +: Warning adding a matrix with the empty matrix will give an empty matrix result.
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_14557.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_14557.tst
new file mode 100644 (file)
index 0000000..a9ed5cd
--- /dev/null
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//<-- CLI SHELL MODE -->
+// <-- ENGLISH IMPOSED -->
+
+// Unit test for csim function
+
+S=ssrand(1,1,0);
+t=0:5;
+y=csim("step",t,S);
+