Increase tol parameter for Windows x64
[scilab.git] / scilab / modules / cacsd / tests / unit_tests / dscr.tst
index d7012ab..6411a9e 100644 (file)
@@ -1,17 +1,28 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA - Serge Steer
+// Copyright (C) 2008 - INRIA - Serge Steer
+// Copyright (C) 2011 - DIGITEO - Michael Baudin
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-a=-1/3;b=1;c=1;
+
+
+
+// Case #1
+a=-1/3;
+b=1;
+c=1;
 sl=syslin('c',a,b,c);
 sld=dscr(sl,0.1);
-if sld.dt<>0.1 then pause,end
-if sld.A<>exp(sl.A*0.1) then pause,end
-if norm(sld.B-sl.A\(sld.A-eye())*sl.B)>1d-15 then pause,end
-
+assert_checkalmostequal ( sld.dt , 0.1 , %eps );
+computed = sld.A;
+expected = exp(sl.A*0.1);
+assert_checkalmostequal ( computed , expected , %eps );
+computed = sld.B;
+expected = sl.A\(sld.A-eye())*sl.B;
+assert_checkalmostequal ( computed , expected , %eps );
 
+// Case #2
 a=[0.9,0,0.6,-1.4,-4.2;
    0.2,0.1,-0.2,0.5,0.6;
    -4.3,0,2.2,0,2.4;
@@ -30,9 +41,12 @@ d=[1,0,0
    0,0,0];
 
 sl=syslin('c',a,b,c,d);
-
 sld=dscr(sl,0.1);
-if sld.dt<>0.1 then pause,end
-if norm(sld.A-expm(sl.A*0.1))>1d-15 then pause,end
-if norm(sld.B-sl.A\(sld.A-eye())*sl.B)>1d-14 then pause,end
+assert_checkalmostequal ( sld.dt , 0.1 , %eps );
+computed = sld.A;
+expected = expm(sl.A*0.1);
+assert_checkalmostequal ( computed , expected , %eps );
+computed = sld.B;
+expected = sl.A\(sld.A-eye())*sl.B;
+assert_checkalmostequal ( computed , expected , 2.e5 * %eps );