bug 4767
Allan CORNET [Tue, 10 Nov 2009 10:42:32 +0000 (11:42 +0100)]
scilab/CHANGES_5.2.X
scilab/modules/cacsd/macros/minreal.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_4767.dia.ref [new file with mode: 0644]
scilab/modules/cacsd/tests/nonreg_tests/bug_4767.tst [new file with mode: 0644]

index f298fcb..06c0720 100644 (file)
@@ -31,6 +31,8 @@ Compilation:
 Bug fixes:
 ==========
 
+* bug 4767 fixed - minreal.sci contained a couple of references to the variable 'T', which was not defined in the function.
+
 * bug 5195 fixed - "get" crashed with "LycĂ©e" toolboxe.
 
 * bug 5213 fixed - ATOMS GUI : Module's author(s) was not displayed
index 61295b6..d2a03f7 100644 (file)
@@ -18,39 +18,50 @@ function [a,b,c]=minreal(a,b,c,domaine,tol)
     end;
     select rhs
     case 1 then 
-      istol=%f
+      istol = %f;
     case 2 then 
-      istol=T,
-      tol=b,
+      istol = %t,
+      tol = b,
     else 
       error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"minreal",1,2)),
     end;
-    [a,b,c,d,x0,dom]=a(2:7);
-    if dom==[] then error(96,1),end
-    domaine='c';if dom<>'c' then domaine='d',end
+    [a,b,c,d,x0,dom] = a(2:7);
+    if dom == [] then 
+      error(96,1);
+    end
+    domaine='c';
+    if dom<>'c' then 
+      domaine='d';
+    end
   case 'constant' then
     if lhs<>3 then
       error(msprintf(gettext("%s: Wrong number of output arguments: %d expected.\n"),"minreal",3)),
     end;
     select rhs
-    case 4 then istol=%f
-    case 5 then istol=T,
+    case 4 then istol = %f
+    case 5 then istol = %t,
     else        
-      error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"minreal",4,5)),
+      error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"minreal",4,5));
     end;
   else 
-    error(91,1)
+    error(91,1);
   end;
   //
-  wc=lyap(a',-b*b',domaine);
-  wo=lyap(a,-c'*c,domaine);
+  wc = lyap(a', -b*b', domaine);
+  wo = lyap(a, -c'*c, domaine);
   if ~istol then 
-    [r,n]=equil1(wc,wo);
+    [r,n] = equil1(wc,wo);
   else 
-    [r,n]=equil1(wc,wo,tol);
+    [r,n] = equil1(wc,wo,tol);
   end;
-  n1=n(1);
-  ri=inv(r);r=r(1:n1,:);ri=ri(:,1:n1)
-  a=r*a*ri;b=r*b;c=c*ri
-  if lhs==1 then a=syslin(dom,a,b,c,d,r*x0),end
+  n1 = n(1);
+  ri = inv(r);
+  r = r(1:n1,:);
+  ri = ri(:,1:n1);
+  a = r*a*ri;
+  b = r*b;
+  c = c*ri;
+  if lhs == 1 then
+    a = syslin(dom,a,b,c,d,r*x0);
+  end
 endfunction
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_4767.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_4767.dia.ref
new file mode 100644 (file)
index 0000000..d34c981
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 4767 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4767
+//
+// <-- Short Description -->
+// minreal.sci contains a couple of references to the variable 'T', which is not defined in the function
+A = [-eye(2,2),rand(2,2);zeros(2,2),-2*eye(2,2)];
+B = [rand(2,2);zeros(2,2)];
+C = rand(2,4);
+sl = syslin('c',A,B,C);
+ierr = execstr('slb = minreal(sl);','errcatch');
+if ierr <> 0 then bugmes();quit;end
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_4767.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_4767.tst
new file mode 100644 (file)
index 0000000..86d1fc6
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 4767 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4767
+//
+// <-- Short Description -->
+// minreal.sci contains a couple of references to the variable 'T', which is not defined in the function
+
+A = [-eye(2,2),rand(2,2);zeros(2,2),-2*eye(2,2)];
+B = [rand(2,2);zeros(2,2)];
+C = rand(2,4);
+sl = syslin('c',A,B,C);
+ierr = execstr('slb = minreal(sl);','errcatch');
+if ierr <> 0 then pause,end
+