Fix test on win64b : test_run(signal_processing, lattn)
[scilab.git] / scilab / modules / signal_processing / tests / unit_tests / lattn.tst
index fbb8540..2679d8b 100644 (file)
@@ -2,6 +2,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
 // Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
@@ -19,46 +20,85 @@ c1=c1';
 n=5;
 [la1,sig1]=lattn(n,1,c1);
 poly(0,"z");
-assert_checkequal(la1(1), 1+0.44297752752246194*%z);
-assert_checkequal(la1(2), 1-0.74241513479044507*%z+0.66265464324027501*%z^2);
 
-// bug of assert_checkequal ?
-//assert_checkequal(la1(3), 1-0.74830900964096658*%z+0.66863379685942259*%z^2-0.00480196030174087*%z^3);
+expected = [1, 0.4429775275224619446313];
+computed = coeff(la1(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(la1(4), 1-2.25921688488977512*%z+3.01297448874460594*%z^2-2.24632204438257954*%z^3+0.9961140979715424*%z^4);
+expected = [1, -0.7424151347904438535963, 0.6626546432402768971315];
+computed = coeff(la1(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(la1(5), 1-1.83287468880271454*%z+2.08814963103012197*%z^2-1.0213063678700105*%z^3+0.09534323012552759*%z^4+0.39938577578835760*%z^5);
+expected = [1, -0.7483090096409563685143, 0.6686337968594154856916, -0.0048019603017336104020];
+computed = coeff(la1(3));
+assert_checkalmostequal(computed, expected, 1.e-11);
 
-assert_checkequal(sig1(1), -1.78885438199984059+%z);
+expected = [1, -2.259216884889600152064, 3.0129744887444243062191, -2.2463220443824241101538, 0.9961140979715100707281];
+computed = coeff(la1(4));
+assert_checkalmostequal(computed, expected, 1.e-13);
 
-assert_checkequal(sig1(2), 1.22738933272413431-1.24514849008225914*%z+%z^2);
+expected = [1, -1.8328746888034248563315, 2.0881496310317460007866, -1.0213063678721847615805, 0.0953432301271536220000, 0.3993857757876373426598];
+computed = coeff(la1(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
 
-assert_checkequal(sig1(3),  -1.51680201929234504+2.3534861083274796*%z-2.25026439104255704*%z^2+%z^3);
+expected = [-1.7888543819998343753497, 1];
+computed = coeff(sig1(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(sig1(4), 1.06749469293314991-2.31561791575813825*%z+3.06724913799065524*%z^2-2.255390458180341*%z^3+%z^4);
+expected = [1.2273893327241232054092, -1.2451484900822573642643, 1];
+computed = coeff(sig1(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(sig1(5), 1.4523203295716356-2.21361191790377232*%z+2.06018618672635778*%z^2-0.19513003383108307*%z^3-0.80871370312335800*%z^4+%z^5);
+expected = [-1.5168020192922293531979, 2.3534861083273810322680, -2.2502643910424811046767, 1];
+computed = coeff(sig1(3));
+assert_checkalmostequal(computed, expected, 1.e-13);
 
+expected = [1.0674946929328583689056, -2.3156179157577936322809, 3.0672491379903537023210, -2.255390458180256185727, 1];
+computed = coeff(sig1(4));
+assert_checkalmostequal(computed, expected, 1.e-12);
+
+expected = [1.4523203295727387107661, -2.2136119179063014072995, 2.0601861867297621699890, -0.1951300338336365847169, -0.8087137031222213501280, 1];
+computed = coeff(sig1(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
 
 //Compare result of poles with p=-1 and with levin function
 [la2,sig2]=lattn(n,-1,c1);
-assert_checkequal(la2(1), 1-1.78885438199984059*%z);
+expected = [1, -1.7888543819998343753497];
+computed = coeff(la2(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(la2(2), 1-1.24514849008225914*%z+1.22738933272413431*%z^2);
+expected = [1, -1.2451484900822573642643, 1.2273893327241232054092];
+computed = coeff(la2(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(la2(3), 1-2.25026439104255704*%z+2.3534861083274796*%z^2-1.51680201929234504*%z^3);
+expected = [1, -2.25026439104248154877, 2.3534861083273810322680, -1.5168020192922295752425];
+computed = coeff(la2(3));
+assert_checkalmostequal(computed, expected, 1.e-13);
 
-assert_checkequal(la2(4), 1-2.255390458180341*%z+3.06724913799065524*%z^2-2.31561791575813825*%z^3+1.06749469293315036*%z^4);
+expected = [1, -2.2553904581802566298165, 3.0672491379903545904995, -2.3156179157577940763701, 1.0674946929328590350394];
+computed = coeff(la2(4));
+assert_checkalmostequal(computed, expected, 1.e-12);
 
-assert_checkequal(la2(5), 1-0.80871370312331603*%z-0.19513003383117766*%z^2+2.06018618672648479*%z^3-2.21361191790386647*%z^4+1.4523203295716776*%z^5);
+expected = [1, -0.8087137031221993677121, -0.1951300338336872108869, 2.0601861867298310038166, -2.2136119179063538098262, 1.4523203295727622474942];
+computed = coeff(la2(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
 
-assert_checkequal(sig2(1), 0.44297752752246194+%z);
+expected = [0.4429775275224624442316, 1];
+computed = coeff(sig2(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-assert_checkequal(sig2(2), 0.66265464324027501-0.74241513479044507*%z+%z^2);
+expected = [0.6626546432402768971315, -0.7424151347904438535963, 1];
+computed = coeff(sig2(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
 
-// bug of assert_checkequal ?
-// assert_checkequal(sig2(3), -0.00480196030174087+0.66863379685942259*%z-0.74830900964096658*%z^2+%z^3);
+expected = [-0.0048019603017336104020, 0.6686337968594154856916, -0.7483090096409563685143, 1];
+computed = coeff(sig2(3));
+assert_checkalmostequal(computed, expected, 1.e-11);
 
-assert_checkequal(sig2(4), 0.99611409797154249-2.24632204438258*%z+3.01297448874460594*%z^2-2.25921688488977512*%z^3+%z^4);
+expected = [0.9961140979715094045943, -2.2463220443824232219754, 3.0129744887444229739515, -2.2592168848895997079751, 1];
+computed = coeff(sig2(4));
+assert_checkalmostequal(computed, expected, 1.e-13);
 
-assert_checkequal(sig2(5), 0.39938577578840101+0.09534323012542978*%z-1.02130636786987794*%z^2+2.0881496310300216*%z^3-1.83287468880266791*%z^4+%z^5);
\ No newline at end of file
+expected = [0.3993857757876351222137, 0.0953432301271577298252, -1.0213063678721903126956, 2.0881496310317495535003, -1.8328746888034264106437, 1];
+computed = coeff(sig2(5));
+assert_checkalmostequal(computed, expected, 1.e-10);