X-Git-Url: http://gitweb.scilab.org/?p=scilab.git;a=blobdiff_plain;f=scilab%2Fmodules%2Fcacsd%2Ftests%2Funit_tests%2Fdscr.tst;h=6411a9e0568d875d4985a9f191eabb5242b5288b;hp=d7012ab04b57b9cefb318ff1576d5bc9287d79a8;hb=9711a49f83d5448baaefe0e4f719ad831a401c4e;hpb=ab466a9ef97b1a7e6dc0089c2b72336e18f9787c diff --git a/scilab/modules/cacsd/tests/unit_tests/dscr.tst b/scilab/modules/cacsd/tests/unit_tests/dscr.tst index d7012ab..6411a9e 100644 --- a/scilab/modules/cacsd/tests/unit_tests/dscr.tst +++ b/scilab/modules/cacsd/tests/unit_tests/dscr.tst @@ -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 );