Fix test 36/8736/3
Adeline CARNIS [Mon, 20 Aug 2012 08:32:41 +0000 (10:32 +0200)]
test_run('integer','bug_3842')

Change-Id: I247b2cebfc370d21275c29d5cc33bca62ea42440

scilab/modules/integer/tests/nonreg_tests/bug_3842.dia.ref

index 05848e3..3c69e8e 100644 (file)
@@ -4,6 +4,7 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+//
 // <-- Non-regression test for bug 3842 -->
 //
 // <-- Bugzilla URL -->
@@ -275,6 +276,8 @@ if or(prod(bs,2,'native')<>sparse([%f;%t])) then pause,end
 if or(prod(bs,3,'native')<>bs) then pause,end
  
  
+// TODO : test the "m" option
 exec SCI/modules/elementary_functions/tests/unit_tests/cumprod.tst
  
 // =============================================================================
@@ -283,6 +286,8 @@ exec SCI/modules/elementary_functions/tests/unit_tests/cumprod.tst
  
 // Copyright (C) 2010 - INRIA - Serge Steer
  
+// Copyright (C) 2012 - Scilab Enterprises - Cedric Delamarre
 //
  
 //  This file is distributed under the same license as the Scilab package.
@@ -300,11 +305,11 @@ exec SCI/modules/elementary_functions/tests/unit_tests/cumprod.tst
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if cumprod([],typ(:))<>[] then pause,end
-  if cumprod([],'*',typ(:))<>[] then pause,end
-  if cumprod([],1,typ(:))<>[] then pause,end
-  if cumprod([],2,typ(:))<>[] then pause,end
-  if cumprod([],3,typ(:))<>[] then pause,end
+  assert_checkequal(cumprod([],typ(:)), []);
+  assert_checkequal(cumprod([],'*',typ(:)), []);
+  assert_checkequal(cumprod([],1,typ(:)), []);
+  assert_checkequal(cumprod([],2,typ(:)), []);
+  assert_checkequal(cumprod([],3,typ(:)), []);
 end
  
  
@@ -317,11 +322,11 @@ d=[1 10;254 9];
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(d,typ(:))<>[1,2540;254,22860]) then pause,end
-  if or(cumprod(d,'*',typ(:))<>[1,2540;254,22860]) then pause,end
-  if or(cumprod(d,1,typ(:))<>[1,10;254,90]) then pause,end
-  if or(cumprod(d,2,typ(:))<>[1,10;254,2286]) then pause,end
-  if or(cumprod(d,3,typ(:))<>d) then pause,end
+  assert_checkequal(cumprod(d,typ(:)), [1,2540;254,22860]);
+  assert_checkequal(cumprod(d,'*',typ(:)), [1,2540;254,22860]);
+  assert_checkequal(cumprod(d,1,typ(:)), [1,10;254,90]);
+  assert_checkequal(cumprod(d,2,typ(:)), [1,10;254,2286]);
+  assert_checkequal(cumprod(d,3,typ(:)), d);
 end
  
  
@@ -332,12 +337,12 @@ d=[1 10;254 9];d(1,1,2)=1;
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(d,typ(:))<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
-  if or(cumprod(d,'*',typ(:))<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
-  if or(cumprod(d,1,typ(:))<>hypermat([2,2,2],[1;254;10;90;1;0;0;0])) then pause,end
-  if or(cumprod(d,2,typ(:))<>hypermat([2,2,2],[1;254;10;2286;1;0;0;0])) then pause,end
-  if or(cumprod(d,3,typ(:))<>hypermat([2,2,2],[1;254;10;9;1;0;0;0])) then pause,end
-  if or(cumprod(d,5,typ(:))<>d) then pause,end
+  assert_checkequal(cumprod(d,typ(:)), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
+  assert_checkequal(cumprod(d,'*',typ(:)), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
+  assert_checkequal(cumprod(d,1,typ(:)), hypermat([2,2,2],[1;254;10;90;1;0;0;0]));
+  assert_checkequal(cumprod(d,2,typ(:)), hypermat([2,2,2],[1;254;10;2286;1;0;0;0]));
+  assert_checkequal(cumprod(d,3,typ(:)), hypermat([2,2,2],[1;254;10;9;1;0;0;0]));
+  assert_checkequal(cumprod(d,5,typ(:)), d);
 end
  
  
@@ -348,23 +353,23 @@ end
 i=uint8([1 10;254 9]);
  
 for typ=list(list(),list('native'));
-  if or(cumprod(i,typ(:))<>uint8([1,236;254,76])) then pause,end
-  if or(cumprod(i,'*',typ(:))<>uint8([1,236;254,76])) then pause,end
-  if or(cumprod(i,1,typ(:))<>uint8([1,10;254,90])) then pause,end
-  if or(cumprod(i,2,typ(:))<>uint8([1,10;254,238])) then pause,end
-  if or(cumprod(i,3,typ(:))<>i) then pause,end
+  assert_checkequal(cumprod(i,typ(:)), uint8([1,236;254,76]));
+  assert_checkequal(cumprod(i,'*',typ(:)), uint8([1,236;254,76]));
+  assert_checkequal(cumprod(i,1,typ(:)), uint8([1,10;254,90]));
+  assert_checkequal(cumprod(i,2,typ(:)), uint8([1,10;254,238]));
+  assert_checkequal(cumprod(i,3,typ(:)), double(i));
 end
  
  
-if or(cumprod(i,'double')<>[1,2540;254,22860]) then pause,end
+assert_checkequal(cumprod(i,'double'), [1,2540;254,22860]);
  
-if or(cumprod(i,'*','double')<>[1,2540;254,22860]) then pause,end
+assert_checkequal(cumprod(i,'*','double'), [1,2540;254,22860]);
  
-if or(cumprod(i,1,'double')<>[1,10;254,90]) then pause,end
+assert_checkequal(cumprod(i,1,'double'), [1,10;254,90]);
  
-if or(cumprod(i,2,'double')<>[1,10;254,2286]) then pause,end
+assert_checkequal(cumprod(i,2,'double'), [1,10;254,2286]);
  
-if or(cumprod(i,3,'double')<>double(i)) then pause,end
+assert_checkequal(cumprod(i,3,'double'), double(i));
  
  
 //with hypermatrices
@@ -372,43 +377,43 @@ if or(cumprod(i,3,'double')<>double(i)) then pause,end
 i=uint8([1 10;254 9]);i(1,1,2)=uint8(1);
  
 for typ=list(list(),list('native'));
-  if or(cumprod(i,typ(:))<>hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0]))) then pause,end
-  if or(cumprod(i,'*',typ(:))<>hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0]))) then pause,end
-  if or(cumprod(i,1,typ(:))<>hypermat([2,2,2],uint8([1;254;10;90;1;0;0;0]))) then pause,end
-  if or(cumprod(i,2,typ(:))<>hypermat([2,2,2],uint8([1;254;10;238;1;0;0;0]))) then pause,end
-  if or(cumprod(i,3,typ(:))<>hypermat([2,2,2],uint8([1;254;10;9;1;0;0;0]))) then pause,end
-  if or(cumprod(i,5,typ(:))<>i) then pause,end
+  assert_checkequal(cumprod(i,typ(:)), hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0])));
+  assert_checkequal(cumprod(i,'*',typ(:)), hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0])));
+  assert_checkequal(cumprod(i,1,typ(:)), hypermat([2,2,2],uint8([1;254;10;90;1;0;0;0])));
+  assert_checkequal(cumprod(i,2,typ(:)), hypermat([2,2,2],uint8([1;254;10;238;1;0;0;0])));
+  assert_checkequal(cumprod(i,3,typ(:)), hypermat([2,2,2],uint8([1;254;10;9;1;0;0;0])));
+  assert_checkequal(cumprod(i,5,typ(:)), double(i));
 end
  
  
  
-if or(cumprod(i,'double')<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,'double'), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
  
-if or(cumprod(i,'*','double')<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,'*','double'), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
  
-if or(cumprod(i,1,'double')<>hypermat([2,2,2],[1;254;10;90;1;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,1,'double'), hypermat([2,2,2],[1;254;10;90;1;0;0;0]));
  
-if or(cumprod(i,2,'double')<>hypermat([2,2,2],[1;254;10;2286;1;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,2,'double'), hypermat([2,2,2],[1;254;10;2286;1;0;0;0]));
  
-if or(cumprod(i,3,'double')<>hypermat([2,2,2],[1;254;10;9;1;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,3,'double'), hypermat([2,2,2],[1;254;10;9;1;0;0;0]));
  
-if or(cumprod(i,5,'double')<>double(i)) then pause,end
+assert_checkequal(cumprod(i,5,'double'), double(i));
  
  
 //=======================================================================
  
-//Matrices of Polynomials 
+//Matrices of Polynomials
  
 s=%s;p=[s s+1;s^2 0];
  
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(p,typ(:))<>[s,s^3+s^4;s^3,0*s]) then pause,end
-  if or(cumprod(p,'*',typ(:))<>[s,s^3+s^4;s^3,0*s]) then pause,end
-  if or(cumprod(p,1,typ(:))<>[s,1+s;s^3,0*s]) then pause,end
-  if or(cumprod(p,2,typ(:))<>[s,s+s^2;s^2,0*s]) then pause,end
-  if or(cumprod(p,3,typ(:))<>p) then pause,end
+  assert_checkequal(cumprod(p,typ(:)), [s,s^3+s^4;s^3,0*s]);
+  assert_checkequal(cumprod(p,'*',typ(:)), [s,s^3+s^4;s^3,0*s]);
+  assert_checkequal(cumprod(p,1,typ(:)), [s,1+s;s^3,0*s]);
+  assert_checkequal(cumprod(p,2,typ(:)), [s,s+s^2;s^2,0*s]);
+  assert_checkequal(cumprod(p,3,typ(:)), p);
 end
  
  
@@ -419,12 +424,12 @@ s=%s;p=[s s+1;s^2 0];p(1,1,2)=-1;
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(p,typ(:))<>hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,'*',typ(:))<>hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,1,typ(:))<>hypermat([2,2,2],[s;s^3;1+s;0*s;-1;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,2,typ(:))<>hypermat([2,2,2],[s;s^2;s+s^2;0*s;-1;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,3,typ(:))<>hypermat([2,2,2],[s;s^2;1+s;0*s;-s;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,5,typ(:))<>p) then pause,end
+  assert_checkequal(cumprod(p,typ(:)), hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,'*',typ(:)), hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,1,typ(:)), hypermat([2,2,2],[s;s^3;1+s;0*s;-1;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,2,typ(:)), hypermat([2,2,2],[s;s^2;s+s^2;0*s;-1;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,3,typ(:)), hypermat([2,2,2],[s;s^2;1+s;0*s;-s;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,5,typ(:)), p);
 end
  
 //=======================================================================
@@ -436,11 +441,11 @@ s=%s;r=1.0 ./[s s+1;s^2 1];
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(r,typ(:))<>[1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]) then pause,end
-  if or(cumprod(r,'*',typ(:))<>[1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]) then pause,end
-  if or(cumprod(r,1,typ(:))<>[1,1;1,1]./[s,1+s;s^3,1+s]) then pause,end
-  if or(cumprod(r,2,typ(:))<>[1,1;1,1]./[s,s+s^2;s^2,s^2]) then pause,end
-  if or(cumprod(r,3,typ(:))<>r) then pause,end
+  assert_checkequal(cumprod(r,typ(:)), [1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]);
+  assert_checkequal(cumprod(r,'*',typ(:)), [1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]);
+  assert_checkequal(cumprod(r,1,typ(:)), [1,1;1,1]./[s,1+s;s^3,1+s]);
+  assert_checkequal(cumprod(r,2,typ(:)), [1,1;1,1]./[s,s+s^2;s^2,s^2]);
+  assert_checkequal(cumprod(r,3,typ(:)), r);
 end
  
  
@@ -452,22 +457,22 @@ end
 b=[%t %t;%f %t];
  
 for typ=list(list(),list('double'));
-  if or(cumprod(b,typ(:))<>[1,0;0,0]) then pause,end
-  if or(cumprod(b,'*',typ(:))<>[1,0;0,0]) then pause,end
-  if or(cumprod(b,1,typ(:))<>[1,1;0,1]) then pause,end
-  if or(cumprod(b,2,typ(:))<>[1,1;0,0]) then pause,end
-  if or(cumprod(b,3,typ(:))<>double(b)) then pause,end
+  assert_checkequal(cumprod(b,typ(:)), [1,0;0,0]);
+  assert_checkequal(cumprod(b,'*',typ(:)), [1,0;0,0]);
+  assert_checkequal(cumprod(b,1,typ(:)), [1,1;0,1]);
+  assert_checkequal(cumprod(b,2,typ(:)), [1,1;0,0]);
+  assert_checkequal(cumprod(b,3,typ(:)), double(b));
 end
  
-if or(cumprod(b,'native')<>[%t,%f;%f,%f]) then pause,end
+assert_checkequal(cumprod(b,'native'), [%t,%f;%f,%f]);
  
-if or(cumprod(b,'*','native')<>[%t,%f;%f,%f]) then pause,end
+assert_checkequal(cumprod(b,'*','native'), [%t,%f;%f,%f]);
  
-if or(cumprod(b,1,'native')<>[%t,%t;%f,%t]) then pause,end
+assert_checkequal(cumprod(b,1,'native'), [%t,%t;%f,%t]);
  
-if or(cumprod(b,2,'native')<>[%t,%t;%f,%f]) then pause,end
+assert_checkequal(cumprod(b,2,'native'), [%t,%t;%f,%f]);
  
-if or(cumprod(b,3,'native')<>b) then pause,end
+assert_checkequal(cumprod(b,3,'native'), b);
  
  
 //with hypermatrices
@@ -475,26 +480,26 @@ if or(cumprod(b,3,'native')<>b) then pause,end
 b=[%t %t;%f %t];b(1,1,2)=%f;
  
 for typ=list(list(),list('double'));
-  if or(cumprod(b,typ(:))<>hypermat([2,2,2],[1;0;0;0;0;0;0;0])) then pause,end
-  if or(cumprod(b,'*',typ(:))<>hypermat([2,2,2],[1;0;0;0;0;0;0;0])) then pause,end
-  if or(cumprod(b,1,typ(:))<>hypermat([2,2,2],[1;0;1;1;0;0;0;0])) then pause,end
-  if or(cumprod(b,2,typ(:))<>hypermat([2,2,2],[1;0;1;0;0;0;0;0])) then pause,end
-  if or(cumprod(b,3,typ(:))<>hypermat([2,2,2],[1;0;1;1;0;0;0;0])) then pause,end
-  if or(cumprod(b,5,typ(:))<>double(b)) then pause,end
+  assert_checkequal(cumprod(b,typ(:)), hypermat([2,2,2],[1;0;0;0;0;0;0;0]));
+  assert_checkequal(cumprod(b,'*',typ(:)), hypermat([2,2,2],[1;0;0;0;0;0;0;0]));
+  assert_checkequal(cumprod(b,1,typ(:)), hypermat([2,2,2],[1;0;1;1;0;0;0;0]));
+  assert_checkequal(cumprod(b,2,typ(:)), hypermat([2,2,2],[1;0;1;0;0;0;0;0]));
+  assert_checkequal(cumprod(b,3,typ(:)), hypermat([2,2,2],[1;0;1;1;0;0;0;0]));
+  assert_checkequal(cumprod(b,5,typ(:)), double(b));
 end
  
  
-if or(cumprod(b,'native')<>hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,'native'), hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f]));
  
-if or(cumprod(b,'*','native')<>hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,'*','native'), hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f]));
  
-if or(cumprod(b,1,'native')<>hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,1,'native'), hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f]));
  
-if or(cumprod(b,2,'native')<>hypermat([2,2,2],[%t;%f;%t;%f;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,2,'native'), hypermat([2,2,2],[%t;%f;%t;%f;%f;%f;%f;%f]));
  
-if or(cumprod(b,3,'native')<>hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,3,'native'), hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f]));
  
-if or(cumprod(b,5,'native')<>b) then pause,end
+assert_checkequal(cumprod(b,5,'native'), b);
  
  
 //=======================================================================
@@ -506,11 +511,11 @@ s=sparse([1 10 0;-1 0 9]);
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(s,typ(:))<>sparse([1,1;1,2;2,1],[1;-10;-1],[2,3])) then pause,end
-  if or(cumprod(s,'*',typ(:))<>sparse([1,1;1,2;2,1],[1;-10;-1],[2,3])) then pause,end
-  if or(cumprod(s,1,typ(:))<>sparse([1,1;1,2;2,1],[1;10;-1],[2,3])) then pause,end
-  if or(cumprod(s,2,typ(:))<>sparse([1,1;1,2;2,1],[1;10;-1],[2,3])) then pause,end
-  if or(cumprod(s,3,typ(:))<>s) then pause,end
+  assert_checkequal(cumprod(s,typ(:)), sparse([1,1;1,2;2,1],[1;-10;-1],[2,3]));
+  assert_checkequal(cumprod(s,'*',typ(:)), sparse([1,1;1,2;2,1],[1;-10;-1],[2,3]));
+  assert_checkequal(cumprod(s,1,typ(:)), sparse([1,1;1,2;2,1],[1;10;-1],[2,3]));
+  assert_checkequal(cumprod(s,2,typ(:)), sparse([1,1;1,2;2,1],[1;10;-1],[2,3]));
+  assert_checkequal(cumprod(s,3,typ(:)), s);
 end
  
  
@@ -521,24 +526,27 @@ end
 bs=sparse([%t %t %f;%t %t %t]);
  
 for typ=list(list(),list('double'));
-  if or(cumprod(bs,typ(:))<>sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,'*',typ(:))<>sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,1,typ(:))<>sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,2,typ(:))<>sparse([1,1;1,2;2,1;2,2;2,3],[1;1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,3,typ(:))<>bool2s(bs)) then pause,end
+  assert_checkequal(cumprod(bs,typ(:)), sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,'*',typ(:)), sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,1,typ(:)), sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,2,typ(:)), sparse([1,1;1,2;2,1;2,2;2,3],[1;1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,3,typ(:)), bool2s(bs));
 end
  
  
-if or(cumprod(bs,'native')<>sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3])) then pause,end
+assert_checkequal(cumprod(bs,'native'), sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3]));
+assert_checkequal(cumprod(bs,'*','native'), sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3]));
  
-if or(cumprod(bs,'*','native')<>sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3])) then pause,end
+assert_checkequal(cumprod(bs,1,'native'), sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3]));
  
+assert_checkequal(cumprod(bs,2,'native'), sparse([1,1;1,2;2,1;2,2;2,3],[%t;%t;%t;%t;%t],[2,3]));
  
-if or(cumprod(bs,1,'native')<>sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3])) then pause,end
+assert_checkequal(cumprod(bs,3,'native'), bs);
  
-if or(cumprod(bs,2,'native')<>sparse([1,1;1,2;2,1;2,2;2,3],[%t;%t;%t;%t;%t],[2,3])) then pause,end
  
-if or(cumprod(bs,3,'native')<>bs) then pause,end
+// TODO : test the "m" option
  
 exec SCI/modules/elementary_functions/tests/unit_tests/prod.tst
  
@@ -804,6 +812,8 @@ if or(prod(bs,2,'native')<>sparse([%f;%t])) then pause,end
 if or(prod(bs,3,'native')<>bs) then pause,end
  
  
+// TODO : test the "m" option
 exec SCI/modules/elementary_functions/tests/unit_tests/cumprod.tst
  
 // =============================================================================
@@ -812,6 +822,8 @@ exec SCI/modules/elementary_functions/tests/unit_tests/cumprod.tst
  
 // Copyright (C) 2010 - INRIA - Serge Steer
  
+// Copyright (C) 2012 - Scilab Enterprises - Cedric Delamarre
 //
  
 //  This file is distributed under the same license as the Scilab package.
@@ -829,11 +841,11 @@ exec SCI/modules/elementary_functions/tests/unit_tests/cumprod.tst
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if cumprod([],typ(:))<>[] then pause,end
-  if cumprod([],'*',typ(:))<>[] then pause,end
-  if cumprod([],1,typ(:))<>[] then pause,end
-  if cumprod([],2,typ(:))<>[] then pause,end
-  if cumprod([],3,typ(:))<>[] then pause,end
+  assert_checkequal(cumprod([],typ(:)), []);
+  assert_checkequal(cumprod([],'*',typ(:)), []);
+  assert_checkequal(cumprod([],1,typ(:)), []);
+  assert_checkequal(cumprod([],2,typ(:)), []);
+  assert_checkequal(cumprod([],3,typ(:)), []);
 end
  
  
@@ -846,11 +858,11 @@ d=[1 10;254 9];
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(d,typ(:))<>[1,2540;254,22860]) then pause,end
-  if or(cumprod(d,'*',typ(:))<>[1,2540;254,22860]) then pause,end
-  if or(cumprod(d,1,typ(:))<>[1,10;254,90]) then pause,end
-  if or(cumprod(d,2,typ(:))<>[1,10;254,2286]) then pause,end
-  if or(cumprod(d,3,typ(:))<>d) then pause,end
+  assert_checkequal(cumprod(d,typ(:)), [1,2540;254,22860]);
+  assert_checkequal(cumprod(d,'*',typ(:)), [1,2540;254,22860]);
+  assert_checkequal(cumprod(d,1,typ(:)), [1,10;254,90]);
+  assert_checkequal(cumprod(d,2,typ(:)), [1,10;254,2286]);
+  assert_checkequal(cumprod(d,3,typ(:)), d);
 end
  
  
@@ -861,12 +873,12 @@ d=[1 10;254 9];d(1,1,2)=1;
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(d,typ(:))<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
-  if or(cumprod(d,'*',typ(:))<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
-  if or(cumprod(d,1,typ(:))<>hypermat([2,2,2],[1;254;10;90;1;0;0;0])) then pause,end
-  if or(cumprod(d,2,typ(:))<>hypermat([2,2,2],[1;254;10;2286;1;0;0;0])) then pause,end
-  if or(cumprod(d,3,typ(:))<>hypermat([2,2,2],[1;254;10;9;1;0;0;0])) then pause,end
-  if or(cumprod(d,5,typ(:))<>d) then pause,end
+  assert_checkequal(cumprod(d,typ(:)), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
+  assert_checkequal(cumprod(d,'*',typ(:)), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
+  assert_checkequal(cumprod(d,1,typ(:)), hypermat([2,2,2],[1;254;10;90;1;0;0;0]));
+  assert_checkequal(cumprod(d,2,typ(:)), hypermat([2,2,2],[1;254;10;2286;1;0;0;0]));
+  assert_checkequal(cumprod(d,3,typ(:)), hypermat([2,2,2],[1;254;10;9;1;0;0;0]));
+  assert_checkequal(cumprod(d,5,typ(:)), d);
 end
  
  
@@ -877,23 +889,23 @@ end
 i=uint8([1 10;254 9]);
  
 for typ=list(list(),list('native'));
-  if or(cumprod(i,typ(:))<>uint8([1,236;254,76])) then pause,end
-  if or(cumprod(i,'*',typ(:))<>uint8([1,236;254,76])) then pause,end
-  if or(cumprod(i,1,typ(:))<>uint8([1,10;254,90])) then pause,end
-  if or(cumprod(i,2,typ(:))<>uint8([1,10;254,238])) then pause,end
-  if or(cumprod(i,3,typ(:))<>i) then pause,end
+  assert_checkequal(cumprod(i,typ(:)), uint8([1,236;254,76]));
+  assert_checkequal(cumprod(i,'*',typ(:)), uint8([1,236;254,76]));
+  assert_checkequal(cumprod(i,1,typ(:)), uint8([1,10;254,90]));
+  assert_checkequal(cumprod(i,2,typ(:)), uint8([1,10;254,238]));
+  assert_checkequal(cumprod(i,3,typ(:)), double(i));
 end
  
  
-if or(cumprod(i,'double')<>[1,2540;254,22860]) then pause,end
+assert_checkequal(cumprod(i,'double'), [1,2540;254,22860]);
  
-if or(cumprod(i,'*','double')<>[1,2540;254,22860]) then pause,end
+assert_checkequal(cumprod(i,'*','double'), [1,2540;254,22860]);
  
-if or(cumprod(i,1,'double')<>[1,10;254,90]) then pause,end
+assert_checkequal(cumprod(i,1,'double'), [1,10;254,90]);
  
-if or(cumprod(i,2,'double')<>[1,10;254,2286]) then pause,end
+assert_checkequal(cumprod(i,2,'double'), [1,10;254,2286]);
  
-if or(cumprod(i,3,'double')<>double(i)) then pause,end
+assert_checkequal(cumprod(i,3,'double'), double(i));
  
  
 //with hypermatrices
@@ -901,43 +913,43 @@ if or(cumprod(i,3,'double')<>double(i)) then pause,end
 i=uint8([1 10;254 9]);i(1,1,2)=uint8(1);
  
 for typ=list(list(),list('native'));
-  if or(cumprod(i,typ(:))<>hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0]))) then pause,end
-  if or(cumprod(i,'*',typ(:))<>hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0]))) then pause,end
-  if or(cumprod(i,1,typ(:))<>hypermat([2,2,2],uint8([1;254;10;90;1;0;0;0]))) then pause,end
-  if or(cumprod(i,2,typ(:))<>hypermat([2,2,2],uint8([1;254;10;238;1;0;0;0]))) then pause,end
-  if or(cumprod(i,3,typ(:))<>hypermat([2,2,2],uint8([1;254;10;9;1;0;0;0]))) then pause,end
-  if or(cumprod(i,5,typ(:))<>i) then pause,end
+  assert_checkequal(cumprod(i,typ(:)), hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0])));
+  assert_checkequal(cumprod(i,'*',typ(:)), hypermat([2,2,2],uint8([1;254;236;76;76;0;0;0])));
+  assert_checkequal(cumprod(i,1,typ(:)), hypermat([2,2,2],uint8([1;254;10;90;1;0;0;0])));
+  assert_checkequal(cumprod(i,2,typ(:)), hypermat([2,2,2],uint8([1;254;10;238;1;0;0;0])));
+  assert_checkequal(cumprod(i,3,typ(:)), hypermat([2,2,2],uint8([1;254;10;9;1;0;0;0])));
+  assert_checkequal(cumprod(i,5,typ(:)), double(i));
 end
  
  
  
-if or(cumprod(i,'double')<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,'double'), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
  
-if or(cumprod(i,'*','double')<>hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,'*','double'), hypermat([2,2,2],[1;254;2540;22860;22860;0;0;0]));
  
-if or(cumprod(i,1,'double')<>hypermat([2,2,2],[1;254;10;90;1;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,1,'double'), hypermat([2,2,2],[1;254;10;90;1;0;0;0]));
  
-if or(cumprod(i,2,'double')<>hypermat([2,2,2],[1;254;10;2286;1;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,2,'double'), hypermat([2,2,2],[1;254;10;2286;1;0;0;0]));
  
-if or(cumprod(i,3,'double')<>hypermat([2,2,2],[1;254;10;9;1;0;0;0])) then pause,end
+assert_checkequal(cumprod(i,3,'double'), hypermat([2,2,2],[1;254;10;9;1;0;0;0]));
  
-if or(cumprod(i,5,'double')<>double(i)) then pause,end
+assert_checkequal(cumprod(i,5,'double'), double(i));
  
  
 //=======================================================================
  
-//Matrices of Polynomials 
+//Matrices of Polynomials
  
 s=%s;p=[s s+1;s^2 0];
  
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(p,typ(:))<>[s,s^3+s^4;s^3,0*s]) then pause,end
-  if or(cumprod(p,'*',typ(:))<>[s,s^3+s^4;s^3,0*s]) then pause,end
-  if or(cumprod(p,1,typ(:))<>[s,1+s;s^3,0*s]) then pause,end
-  if or(cumprod(p,2,typ(:))<>[s,s+s^2;s^2,0*s]) then pause,end
-  if or(cumprod(p,3,typ(:))<>p) then pause,end
+  assert_checkequal(cumprod(p,typ(:)), [s,s^3+s^4;s^3,0*s]);
+  assert_checkequal(cumprod(p,'*',typ(:)), [s,s^3+s^4;s^3,0*s]);
+  assert_checkequal(cumprod(p,1,typ(:)), [s,1+s;s^3,0*s]);
+  assert_checkequal(cumprod(p,2,typ(:)), [s,s+s^2;s^2,0*s]);
+  assert_checkequal(cumprod(p,3,typ(:)), p);
 end
  
  
@@ -948,12 +960,12 @@ s=%s;p=[s s+1;s^2 0];p(1,1,2)=-1;
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(p,typ(:))<>hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,'*',typ(:))<>hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,1,typ(:))<>hypermat([2,2,2],[s;s^3;1+s;0*s;-1;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,2,typ(:))<>hypermat([2,2,2],[s;s^2;s+s^2;0*s;-1;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,3,typ(:))<>hypermat([2,2,2],[s;s^2;1+s;0*s;-s;0*s;0*s;0*s])) then pause,end
-  if or(cumprod(p,5,typ(:))<>p) then pause,end
+  assert_checkequal(cumprod(p,typ(:)), hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,'*',typ(:)), hypermat([2,2,2],[s;s^3;s^3+s^4;0*s;0*s;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,1,typ(:)), hypermat([2,2,2],[s;s^3;1+s;0*s;-1;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,2,typ(:)), hypermat([2,2,2],[s;s^2;s+s^2;0*s;-1;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,3,typ(:)), hypermat([2,2,2],[s;s^2;1+s;0*s;-s;0*s;0*s;0*s]));
+  assert_checkequal(cumprod(p,5,typ(:)), p);
 end
  
 //=======================================================================
@@ -965,11 +977,11 @@ s=%s;r=1.0 ./[s s+1;s^2 1];
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(r,typ(:))<>[1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]) then pause,end
-  if or(cumprod(r,'*',typ(:))<>[1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]) then pause,end
-  if or(cumprod(r,1,typ(:))<>[1,1;1,1]./[s,1+s;s^3,1+s]) then pause,end
-  if or(cumprod(r,2,typ(:))<>[1,1;1,1]./[s,s+s^2;s^2,s^2]) then pause,end
-  if or(cumprod(r,3,typ(:))<>r) then pause,end
+  assert_checkequal(cumprod(r,typ(:)), [1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]);
+  assert_checkequal(cumprod(r,'*',typ(:)), [1,1;1,1]./[s,s^3+s^4;s^3,s^3+s^4]);
+  assert_checkequal(cumprod(r,1,typ(:)), [1,1;1,1]./[s,1+s;s^3,1+s]);
+  assert_checkequal(cumprod(r,2,typ(:)), [1,1;1,1]./[s,s+s^2;s^2,s^2]);
+  assert_checkequal(cumprod(r,3,typ(:)), r);
 end
  
  
@@ -981,22 +993,22 @@ end
 b=[%t %t;%f %t];
  
 for typ=list(list(),list('double'));
-  if or(cumprod(b,typ(:))<>[1,0;0,0]) then pause,end
-  if or(cumprod(b,'*',typ(:))<>[1,0;0,0]) then pause,end
-  if or(cumprod(b,1,typ(:))<>[1,1;0,1]) then pause,end
-  if or(cumprod(b,2,typ(:))<>[1,1;0,0]) then pause,end
-  if or(cumprod(b,3,typ(:))<>double(b)) then pause,end
+  assert_checkequal(cumprod(b,typ(:)), [1,0;0,0]);
+  assert_checkequal(cumprod(b,'*',typ(:)), [1,0;0,0]);
+  assert_checkequal(cumprod(b,1,typ(:)), [1,1;0,1]);
+  assert_checkequal(cumprod(b,2,typ(:)), [1,1;0,0]);
+  assert_checkequal(cumprod(b,3,typ(:)), double(b));
 end
  
-if or(cumprod(b,'native')<>[%t,%f;%f,%f]) then pause,end
+assert_checkequal(cumprod(b,'native'), [%t,%f;%f,%f]);
  
-if or(cumprod(b,'*','native')<>[%t,%f;%f,%f]) then pause,end
+assert_checkequal(cumprod(b,'*','native'), [%t,%f;%f,%f]);
  
-if or(cumprod(b,1,'native')<>[%t,%t;%f,%t]) then pause,end
+assert_checkequal(cumprod(b,1,'native'), [%t,%t;%f,%t]);
  
-if or(cumprod(b,2,'native')<>[%t,%t;%f,%f]) then pause,end
+assert_checkequal(cumprod(b,2,'native'), [%t,%t;%f,%f]);
  
-if or(cumprod(b,3,'native')<>b) then pause,end
+assert_checkequal(cumprod(b,3,'native'), b);
  
  
 //with hypermatrices
@@ -1004,26 +1016,26 @@ if or(cumprod(b,3,'native')<>b) then pause,end
 b=[%t %t;%f %t];b(1,1,2)=%f;
  
 for typ=list(list(),list('double'));
-  if or(cumprod(b,typ(:))<>hypermat([2,2,2],[1;0;0;0;0;0;0;0])) then pause,end
-  if or(cumprod(b,'*',typ(:))<>hypermat([2,2,2],[1;0;0;0;0;0;0;0])) then pause,end
-  if or(cumprod(b,1,typ(:))<>hypermat([2,2,2],[1;0;1;1;0;0;0;0])) then pause,end
-  if or(cumprod(b,2,typ(:))<>hypermat([2,2,2],[1;0;1;0;0;0;0;0])) then pause,end
-  if or(cumprod(b,3,typ(:))<>hypermat([2,2,2],[1;0;1;1;0;0;0;0])) then pause,end
-  if or(cumprod(b,5,typ(:))<>double(b)) then pause,end
+  assert_checkequal(cumprod(b,typ(:)), hypermat([2,2,2],[1;0;0;0;0;0;0;0]));
+  assert_checkequal(cumprod(b,'*',typ(:)), hypermat([2,2,2],[1;0;0;0;0;0;0;0]));
+  assert_checkequal(cumprod(b,1,typ(:)), hypermat([2,2,2],[1;0;1;1;0;0;0;0]));
+  assert_checkequal(cumprod(b,2,typ(:)), hypermat([2,2,2],[1;0;1;0;0;0;0;0]));
+  assert_checkequal(cumprod(b,3,typ(:)), hypermat([2,2,2],[1;0;1;1;0;0;0;0]));
+  assert_checkequal(cumprod(b,5,typ(:)), double(b));
 end
  
  
-if or(cumprod(b,'native')<>hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,'native'), hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f]));
  
-if or(cumprod(b,'*','native')<>hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,'*','native'), hypermat([2,2,2],[%t;%f;%f;%f;%f;%f;%f;%f]));
  
-if or(cumprod(b,1,'native')<>hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,1,'native'), hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f]));
  
-if or(cumprod(b,2,'native')<>hypermat([2,2,2],[%t;%f;%t;%f;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,2,'native'), hypermat([2,2,2],[%t;%f;%t;%f;%f;%f;%f;%f]));
  
-if or(cumprod(b,3,'native')<>hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f])) then pause,end
+assert_checkequal(cumprod(b,3,'native'), hypermat([2,2,2],[%t;%f;%t;%t;%f;%f;%f;%f]));
  
-if or(cumprod(b,5,'native')<>b) then pause,end
+assert_checkequal(cumprod(b,5,'native'), b);
  
  
 //=======================================================================
@@ -1035,11 +1047,11 @@ s=sparse([1 10 0;-1 0 9]);
 T=list(list(),list('native'),list('double'));
  
 for typ=T
-  if or(cumprod(s,typ(:))<>sparse([1,1;1,2;2,1],[1;-10;-1],[2,3])) then pause,end
-  if or(cumprod(s,'*',typ(:))<>sparse([1,1;1,2;2,1],[1;-10;-1],[2,3])) then pause,end
-  if or(cumprod(s,1,typ(:))<>sparse([1,1;1,2;2,1],[1;10;-1],[2,3])) then pause,end
-  if or(cumprod(s,2,typ(:))<>sparse([1,1;1,2;2,1],[1;10;-1],[2,3])) then pause,end
-  if or(cumprod(s,3,typ(:))<>s) then pause,end
+  assert_checkequal(cumprod(s,typ(:)), sparse([1,1;1,2;2,1],[1;-10;-1],[2,3]));
+  assert_checkequal(cumprod(s,'*',typ(:)), sparse([1,1;1,2;2,1],[1;-10;-1],[2,3]));
+  assert_checkequal(cumprod(s,1,typ(:)), sparse([1,1;1,2;2,1],[1;10;-1],[2,3]));
+  assert_checkequal(cumprod(s,2,typ(:)), sparse([1,1;1,2;2,1],[1;10;-1],[2,3]));
+  assert_checkequal(cumprod(s,3,typ(:)), s);
 end
  
  
@@ -1050,22 +1062,25 @@ end
 bs=sparse([%t %t %f;%t %t %t]);
  
 for typ=list(list(),list('double'));
-  if or(cumprod(bs,typ(:))<>sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,'*',typ(:))<>sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,1,typ(:))<>sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,2,typ(:))<>sparse([1,1;1,2;2,1;2,2;2,3],[1;1;1;1;1],[2,3])) then pause,end
-  if or(cumprod(bs,3,typ(:))<>bool2s(bs)) then pause,end
+  assert_checkequal(cumprod(bs,typ(:)), sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,'*',typ(:)), sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,1,typ(:)), sparse([1,1;1,2;2,1;2,2],[1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,2,typ(:)), sparse([1,1;1,2;2,1;2,2;2,3],[1;1;1;1;1],[2,3]));
+  assert_checkequal(cumprod(bs,3,typ(:)), bool2s(bs));
 end
  
  
-if or(cumprod(bs,'native')<>sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3])) then pause,end
+assert_checkequal(cumprod(bs,'native'), sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3]));
+assert_checkequal(cumprod(bs,'*','native'), sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3]));
  
-if or(cumprod(bs,'*','native')<>sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3])) then pause,end
+assert_checkequal(cumprod(bs,1,'native'), sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3]));
  
+assert_checkequal(cumprod(bs,2,'native'), sparse([1,1;1,2;2,1;2,2;2,3],[%t;%t;%t;%t;%t],[2,3]));
  
-if or(cumprod(bs,1,'native')<>sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,3])) then pause,end
+assert_checkequal(cumprod(bs,3,'native'), bs);
  
-if or(cumprod(bs,2,'native')<>sparse([1,1;1,2;2,1;2,2;2,3],[%t;%t;%t;%t;%t],[2,3])) then pause,end
  
-if or(cumprod(bs,3,'native')<>bs) then pause,end
+// TODO : test the "m" option