* Bug #6752 fixed - unit test scilab.tst has been split in different tests. 36/11336/4
Charlotte HECQUET [Fri, 19 Apr 2013 09:54:42 +0000 (11:54 +0200)]
Change-Id: I83e72fdf122e2c079a3a51ab0f324c76e99738f0

13 files changed:
scilab/CHANGES_5.5.X
scilab/modules/core/tests/unit_tests/LU.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/LU.tst [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/QR.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/QR.tst [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/basic_operations.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/basic_operations.tst [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/mat_functions.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/mat_functions.tst [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/scal_vect_mat.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/scal_vect_mat.tst [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/scilab.dia.ref [deleted file]
scilab/modules/core/tests/unit_tests/scilab.tst [deleted file]

index 70d67a1..60c2ebc 100644 (file)
@@ -77,6 +77,8 @@ Bug fixes
 
 * Bug #6693 fixed - modulo did not accept polynomial inputs. Help page was not updated.
 
+* Bug #6752 fixed - unit test scilab.tst has been split in different tests.
+
 * Bug #7684 fixed - Introduction demo splitted in subsections.
 
 * Bug #7828 fixed - Slight improvements in nicholschart.
diff --git a/scilab/modules/core/tests/unit_tests/LU.dia.ref b/scilab/modules/core/tests/unit_tests/LU.dia.ref
new file mode 100644 (file)
index 0000000..74c2447
--- /dev/null
@@ -0,0 +1,47 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab LU
+pi=%pi;
+i=%i;
+e=%e;
+a=rand(4,4);b=rand(5,4);ac=a+i*rand(4,4);bc=b+i*rand(5,4);
+assert_checktrue(abs((1/a)*a-eye())< 100*%eps);
+assert_checktrue(abs((i/a)*a-i*eye())< 100*%eps);
+assert_checktrue(abs((1/ac)*ac-eye())< 100*%eps);
+assert_checktrue(abs((i/ac)*ac-i*eye())< 100*%eps);
+assert_checktrue(abs(a*(a\1)-eye())< 100*%eps);
+assert_checktrue(abs(a*(a\i)-i*eye())< 100*%eps);
+assert_checktrue(abs(ac*(ac\1)-eye())< 100*%eps);
+assert_checktrue(abs(ac*(ac\i)-eye()*i)< 100*%eps);
+//
+assert_checktrue(abs(inv(a)*a-eye())< 100*%eps);
+assert_checktrue(abs(inv(ac)*ac-eye())< 100*%eps);
+//
+assert_checktrue(abs((b/a)*a-b)< 100*%eps);
+assert_checktrue(abs((b/ac)*ac-b)< 100*%eps);
+assert_checktrue(abs((bc/a)*a-bc)< 100*%eps);
+assert_checktrue(abs((bc/ac)*ac-bc)< 100*%eps);
+//
+assert_checktrue(abs(a*(a\b')-b')< 100*%eps);
+assert_checktrue(abs(ac*(ac\b')-b')< 100*%eps);
+assert_checktrue(abs(a*(a\bc')-bc')< 100*%eps);
+assert_checktrue(abs(ac*(ac\bc')-bc')< 100*%eps);
+//
+[l u]=lu(a);
+assert_checktrue(abs(l*u-a)< 100*%eps);
+[l u]=lu(ac);
+assert_checktrue(abs(l*u-ac)< 100*%eps);
+//
+h1(5,5)=0;for k=1:5,for l=1:5, h1(k,l)=1/(k+l-1);end;end;
+assert_checktrue(abs(inv(h1)-testmatrix('hilb',5))< 1.e-7);
+//
+assert_checktrue(abs(det(testmatrix('magic',5))-5070000)< 1.e-7);
+//
+b=a*a';h=chol(b);
+assert_checktrue(abs(h'*h-b)< 100*%eps);
+bc=triu(ac*ac');bc=bc+bc'-diag(real(diag(bc)));;h=chol(bc);
+assert_checktrue(abs(h'*h-bc)< 100*%eps);
diff --git a/scilab/modules/core/tests/unit_tests/LU.tst b/scilab/modules/core/tests/unit_tests/LU.tst
new file mode 100644 (file)
index 0000000..599a9eb
--- /dev/null
@@ -0,0 +1,49 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab LU
+
+pi=%pi;
+i=%i;
+e=%e;
+
+a=rand(4,4);b=rand(5,4);ac=a+i*rand(4,4);bc=b+i*rand(5,4);
+assert_checktrue(abs((1/a)*a-eye())< 100*%eps);
+assert_checktrue(abs((i/a)*a-i*eye())< 100*%eps);
+assert_checktrue(abs((1/ac)*ac-eye())< 100*%eps);
+assert_checktrue(abs((i/ac)*ac-i*eye())< 100*%eps);
+assert_checktrue(abs(a*(a\1)-eye())< 100*%eps);
+assert_checktrue(abs(a*(a\i)-i*eye())< 100*%eps);
+assert_checktrue(abs(ac*(ac\1)-eye())< 100*%eps);
+assert_checktrue(abs(ac*(ac\i)-eye()*i)< 100*%eps);
+//
+assert_checktrue(abs(inv(a)*a-eye())< 100*%eps);
+assert_checktrue(abs(inv(ac)*ac-eye())< 100*%eps);
+//
+assert_checktrue(abs((b/a)*a-b)< 100*%eps);
+assert_checktrue(abs((b/ac)*ac-b)< 100*%eps);
+assert_checktrue(abs((bc/a)*a-bc)< 100*%eps);
+assert_checktrue(abs((bc/ac)*ac-bc)< 100*%eps);
+//
+assert_checktrue(abs(a*(a\b')-b')< 100*%eps);
+assert_checktrue(abs(ac*(ac\b')-b')< 100*%eps);
+assert_checktrue(abs(a*(a\bc')-bc')< 100*%eps);
+assert_checktrue(abs(ac*(ac\bc')-bc')< 100*%eps);
+//
+[l u]=lu(a);
+assert_checktrue(abs(l*u-a)< 100*%eps);
+[l u]=lu(ac);
+assert_checktrue(abs(l*u-ac)< 100*%eps);
+//
+h1(5,5)=0;for k=1:5,for l=1:5, h1(k,l)=1/(k+l-1);end;end;
+assert_checktrue(abs(inv(h1)-testmatrix('hilb',5))< 1.e-7);
+//
+assert_checktrue(abs(det(testmatrix('magic',5))-5070000)< 1.e-7);
+//
+b=a*a';h=chol(b);
+assert_checktrue(abs(h'*h-b)< 100*%eps);
+bc=triu(ac*ac');bc=bc+bc'-diag(real(diag(bc)));;h=chol(bc);
+assert_checktrue(abs(h'*h-bc)< 100*%eps);
diff --git a/scilab/modules/core/tests/unit_tests/QR.dia.ref b/scilab/modules/core/tests/unit_tests/QR.dia.ref
new file mode 100644 (file)
index 0000000..3517cb5
--- /dev/null
@@ -0,0 +1,156 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab QR
+pi=%pi;
+i=%i;
+e=%e;
+a=rand(3,4);b=rand(3,4);ac=a+i*rand(3,4);bc=b+i*rand(3,4);
+//
+assert_checktrue(abs(a*(1/a)*a-a)< 10*%eps);
+assert_checktrue(abs(a*(i/a)*a-i*a)< 10*%eps);
+assert_checktrue(abs(a*(a\ 1)*a-a)< 10*%eps);
+assert_checktrue(abs(a*(a\ i)*a-i*a)< 10*%eps);
+assert_checktrue(abs(ac*(1/ac)*ac-ac)< 10*%eps);
+assert_checktrue(abs(ac*(i/ac)*ac-i*ac)< 10*%eps);
+assert_checktrue(abs(ac*(ac\ 1)*ac-ac)< 10*%eps);
+assert_checktrue(abs(ac*(ac\ i)*ac-i*ac)< 10*%eps);
+//
+assert_checktrue(abs(a/b-a*(1/b))< 10*%eps);
+assert_checktrue(abs(ac/b-ac*(1/b))< 10*%eps);
+assert_checktrue(abs(a/bc-a*(1/bc))< 10*%eps);
+assert_checktrue(abs(ac/bc-ac*(1/bc))< 10*%eps);
+//
+assert_checktrue(abs(a\ b -(a\ 1)*b)< 10*%eps);
+assert_checktrue(abs(a\ bc-(a\ 1)*bc)< 10*%eps);
+assert_checktrue(abs(ac\ b-(ac\ 1)*b)< 10*%eps);
+assert_checktrue(abs(ac\ bc-(ac\ 1)*bc)< 10*%eps);
+//
+//elemt-wise
+a=rand(3,2);ai=a+rand(3,2)*%i;
+de=2;
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+de=de+3*%i;
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+//
+de=2;def=de*ones(a);
+assert_checktrue(norm(a./de-a./def,1) <1000*%eps);
+assert_checktrue(norm(ai./de-ai./def,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(a./de-a./def,1) <1000*%eps);
+assert_checktrue(norm(ai./de-ai./def,1) <1000*%eps);
+de=2;def=de*ones(a);
+assert_checktrue(norm(a.\de-a.\def,1) <1000*%eps);
+assert_checktrue(norm(ai.\de-ai.\def,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(a.\de-a.\def,1) <1000*%eps);
+assert_checktrue(norm(ai.\de-ai.\def,1) <1000*%eps);
+///////////
+de=2;def=de*ones(a);
+assert_checktrue(norm(de.\a-de.\a,1) <1000*%eps);
+assert_checktrue(norm(de.\ai-def.\ai,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(de.\a-def.\a,1) <1000*%eps);
+assert_checktrue(norm(de.\ai-def.\ai,1) <1000*%eps);
+de=2;def=de*ones(a);
+assert_checktrue(norm(de./a-def./a,1) <1000*%eps);
+assert_checktrue(norm(de./ai-def./ai,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(de./a-def./a,1) <1000*%eps);
+assert_checktrue(norm(de./ai-def./ai,1) <1000*%eps);
+//
+[p,r]=qr(a);
+assert_checktrue(abs(p*r-a)< 100*%eps);
+[p,r]=qr(a');
+assert_checktrue(abs(p*r-a')< 100*%eps);
+[p,r,x]=qr(a);
+assert_checktrue(abs(p*r*x'-a)< 100*%eps);
+[p,r]=qr(ac);
+assert_checktrue(abs(p*r-ac)< 100*%eps);
+[p,r,x]=qr(ac);
+assert_checktrue(abs(p*r-ac*x)< 100*%eps);
+//
+assert_checktrue(abs(cond(diag([1 2 3 4]))-4)< 10*%eps);
+assert_checktrue(abs(cond(diag([1 i 3 4]))-4)< 10*%eps);
+v=[1 2 3 4 5];
+assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+v=v';
+assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+v=[i 2 3 4 5];
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+v=v';
+assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+a=[diag([1 2 3]);[0 0 0]];
+assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+a=a';
+assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+a=[diag([i,2,3]),[0;0;0]];
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+a=a';
+assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+//
+a=rand(3,5);ac=a+i*rand(3,5);
+[u,s,v]=svd(a);u*s*v'-a;
+assert_checktrue(abs(svd(a)-diag(s))< 10*%eps);
+[u,s,v]=svd(ac);u*s*v'-ac;
+assert_checktrue(abs(svd(ac)-diag(s))< 10*%eps);
+//
+[u,s,v]=svd(a,0);u*s*v'-a;
+assert_checktrue(abs(svd(a,0)-diag(s,0))< 10*%eps);
+[u,s,v]=svd(ac,0);u*s*v'-ac;
+assert_checktrue(abs(svd(ac,0)-diag(s))< 10*%eps);
+a=a';ac=ac';
+a=rand(3,5);ac=a+i*rand(3,5);
+[u,s,v]=svd(a);u*s*v'-a;
+assert_checktrue(abs(svd(a)-diag(s))< 10*%eps);
+[u,s,v]=svd(ac);u*s*v'-ac;
+assert_checktrue(abs(svd(ac)-diag(s))< 10*%eps);
+//
+[u,s,v]=svd(a,0);u*s*v'-a;
+assert_checktrue(abs(svd(a,0)-diag(s,0))< 10*%eps);
+[u,s,v]=svd(ac,0);u*s*v'-ac;
+assert_checktrue(abs(svd(ac,0)-diag(s))< 10*%eps);
+//
+assert_checktrue(abs(a*pinv(a)*a-a)< 10*%eps);
+assert_checktrue(abs(ac*pinv(ac)*ac -ac)< 10*%eps);
+a=a';ac=ac';
+assert_checktrue(abs(a*pinv(a)*a-a)< 10*%eps);
+assert_checktrue(abs(ac*pinv(ac)*ac-ac)< 10*%eps);
+//
+assert_checktrue(abs(rank(a)-3)< 10*%eps);
+assert_checktrue(abs(rank(ac)-3)< 10*%eps);
diff --git a/scilab/modules/core/tests/unit_tests/QR.tst b/scilab/modules/core/tests/unit_tests/QR.tst
new file mode 100644 (file)
index 0000000..5b43bbe
--- /dev/null
@@ -0,0 +1,158 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab QR
+pi=%pi;
+i=%i;
+e=%e;
+
+a=rand(3,4);b=rand(3,4);ac=a+i*rand(3,4);bc=b+i*rand(3,4);
+//
+assert_checktrue(abs(a*(1/a)*a-a)< 10*%eps);
+assert_checktrue(abs(a*(i/a)*a-i*a)< 10*%eps);
+assert_checktrue(abs(a*(a\ 1)*a-a)< 10*%eps);
+assert_checktrue(abs(a*(a\ i)*a-i*a)< 10*%eps);
+assert_checktrue(abs(ac*(1/ac)*ac-ac)< 10*%eps);
+assert_checktrue(abs(ac*(i/ac)*ac-i*ac)< 10*%eps);
+assert_checktrue(abs(ac*(ac\ 1)*ac-ac)< 10*%eps);
+assert_checktrue(abs(ac*(ac\ i)*ac-i*ac)< 10*%eps);
+//
+assert_checktrue(abs(a/b-a*(1/b))< 10*%eps);
+assert_checktrue(abs(ac/b-ac*(1/b))< 10*%eps);
+assert_checktrue(abs(a/bc-a*(1/bc))< 10*%eps);
+assert_checktrue(abs(ac/bc-ac*(1/bc))< 10*%eps);
+//
+assert_checktrue(abs(a\ b -(a\ 1)*b)< 10*%eps);
+assert_checktrue(abs(a\ bc-(a\ 1)*bc)< 10*%eps);
+assert_checktrue(abs(ac\ b-(ac\ 1)*b)< 10*%eps);
+assert_checktrue(abs(ac\ bc-(ac\ 1)*bc)< 10*%eps);
+//
+//elemt-wise
+a=rand(3,2);ai=a+rand(3,2)*%i;
+de=2;
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+de=de+3*%i;
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+assert_checktrue(norm(ai.*de-ai*de,1) <1000*%eps);
+assert_checktrue(norm(de.*ai-de*ai,1) <1000*%eps);
+//
+de=2;def=de*ones(a);
+assert_checktrue(norm(a./de-a./def,1) <1000*%eps);
+assert_checktrue(norm(ai./de-ai./def,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(a./de-a./def,1) <1000*%eps);
+assert_checktrue(norm(ai./de-ai./def,1) <1000*%eps);
+de=2;def=de*ones(a);
+assert_checktrue(norm(a.\de-a.\def,1) <1000*%eps);
+assert_checktrue(norm(ai.\de-ai.\def,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(a.\de-a.\def,1) <1000*%eps);
+assert_checktrue(norm(ai.\de-ai.\def,1) <1000*%eps);
+
+///////////
+de=2;def=de*ones(a);
+assert_checktrue(norm(de.\a-de.\a,1) <1000*%eps);
+assert_checktrue(norm(de.\ai-def.\ai,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(de.\a-def.\a,1) <1000*%eps);
+assert_checktrue(norm(de.\ai-def.\ai,1) <1000*%eps);
+de=2;def=de*ones(a);
+assert_checktrue(norm(de./a-def./a,1) <1000*%eps);
+assert_checktrue(norm(de./ai-def./ai,1) <1000*%eps);
+//
+de=2+3*%i;def=de*ones(a);
+assert_checktrue(norm(de./a-def./a,1) <1000*%eps);
+assert_checktrue(norm(de./ai-def./ai,1) <1000*%eps);
+//
+[p,r]=qr(a);
+assert_checktrue(abs(p*r-a)< 100*%eps);
+[p,r]=qr(a');
+assert_checktrue(abs(p*r-a')< 100*%eps);
+[p,r,x]=qr(a);
+assert_checktrue(abs(p*r*x'-a)< 100*%eps);
+[p,r]=qr(ac);
+assert_checktrue(abs(p*r-ac)< 100*%eps);
+[p,r,x]=qr(ac);
+assert_checktrue(abs(p*r-ac*x)< 100*%eps);
+//
+assert_checktrue(abs(cond(diag([1 2 3 4]))-4)< 10*%eps);
+assert_checktrue(abs(cond(diag([1 i 3 4]))-4)< 10*%eps);
+v=[1 2 3 4 5];
+assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+v=v';
+assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+v=[i 2 3 4 5];
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+v=v';
+assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
+assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
+assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
+assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
+a=[diag([1 2 3]);[0 0 0]];
+assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+a=a';
+assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+a=[diag([i,2,3]),[0;0;0]];
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+a=a';
+assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
+assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
+assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
+//
+a=rand(3,5);ac=a+i*rand(3,5);
+[u,s,v]=svd(a);u*s*v'-a;
+assert_checktrue(abs(svd(a)-diag(s))< 10*%eps);
+[u,s,v]=svd(ac);u*s*v'-ac;
+assert_checktrue(abs(svd(ac)-diag(s))< 10*%eps);
+//
+[u,s,v]=svd(a,0);u*s*v'-a;
+assert_checktrue(abs(svd(a,0)-diag(s,0))< 10*%eps);
+[u,s,v]=svd(ac,0);u*s*v'-ac;
+assert_checktrue(abs(svd(ac,0)-diag(s))< 10*%eps);
+a=a';ac=ac';
+a=rand(3,5);ac=a+i*rand(3,5);
+[u,s,v]=svd(a);u*s*v'-a;
+assert_checktrue(abs(svd(a)-diag(s))< 10*%eps);
+[u,s,v]=svd(ac);u*s*v'-ac;
+assert_checktrue(abs(svd(ac)-diag(s))< 10*%eps);
+//
+[u,s,v]=svd(a,0);u*s*v'-a;
+assert_checktrue(abs(svd(a,0)-diag(s,0))< 10*%eps);
+[u,s,v]=svd(ac,0);u*s*v'-ac;
+assert_checktrue(abs(svd(ac,0)-diag(s))< 10*%eps);
+//
+assert_checktrue(abs(a*pinv(a)*a-a)< 10*%eps);
+assert_checktrue(abs(ac*pinv(ac)*ac -ac)< 10*%eps);
+a=a';ac=ac';
+assert_checktrue(abs(a*pinv(a)*a-a)< 10*%eps);
+assert_checktrue(abs(ac*pinv(ac)*ac-ac)< 10*%eps);
+//
+assert_checktrue(abs(rank(a)-3)< 10*%eps);
+assert_checktrue(abs(rank(ac)-3)< 10*%eps);
diff --git a/scilab/modules/core/tests/unit_tests/basic_operations.dia.ref b/scilab/modules/core/tests/unit_tests/basic_operations.dia.ref
new file mode 100644 (file)
index 0000000..b9a60df
--- /dev/null
@@ -0,0 +1,328 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab basic operations
+pi=%pi;
+i=%i;
+e=%e;
+1;
+a=1;
+b=[1 2 3];
+c=[1 2 3;4 5 6];
+d=[1 2 3;4 5 6]';
+d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15];
+d=[1 2;3 4];
+e1=[[1 2] [3 4];[5 6 7 8];[9;10;11;12]'];
+f([1 3 5],[1 2 3])=[-1 -2 -3;-4 -5 -6;-7 -8 -9];
+g=[i,2,3;1 i 3;1 2 i];
+h=[i 1 2 i 3];
+o=[1 i i 2 3]';
+b(2)=3;
+e1(1,3)=1;
+p='apcdefghijklmnopqrstuvwxyz0123456789';
+// test de stackg
+a,b,c,d,e1,f,g,h,o,p
+ a  =
+    1.  
+ b  =
+    1.    3.    3.  
+ c  =
+    1.    2.    3.  
+    4.    5.    6.  
+ d  =
+    1.    2.  
+    3.    4.  
+ e1  =
+    1.    2.     1.     4.   
+    5.    6.     7.     8.   
+    9.    10.    11.    12.  
+ f  =
+  - 1.  - 2.  - 3.  
+    0.    0.    0.  
+  - 4.  - 5.  - 6.  
+    0.    0.    0.  
+  - 7.  - 8.  - 9.  
+ g  =
+    i      2.     3.   
+    1.     i      3.   
+    1.     2.     i    
+ h  =
+    i      1.    2.    i      3.  
+ o  =
+    1.   
+  - i    
+  - i    
+    2.   
+    3.   
+ p  =
+ apcdefghijklmnopqrstuvwxyz0123456789   
+assert_checkequal(b(2),3);
+assert_checkequal(e1(1,3),1);
+assert_checkequal(e1([1 2],[3 4]),[1 4;7 8]);
+assert_checkequal(e1(1:2,:),[1 2 1 4;5 6 7 8]);
+assert_checkequal(e1(:,4),[4; 8; 12]);
+assert_checkequal(e1(:,:),[1 2 1 4; 5 6 7 8; 9 10 11 12]);
+assert_checkequal(g(1,1),i);
+assert_checkequal(g(:,1),[i;1;1]);
+assert_checkequal(g(1:2,:),[i,2,3; 1,i,3]);
+assert_checkequal(g(:,:),[i,2,3;1,i,3;1,2,i]);
+assert_checkequal(o',[1 i i 2 3]);
+//test de stack2
+//
+// additions...
+assert_checkequal([1 2 3;4 5 6]-[1 2 3;4 5 6],[0,0,0;0,0,0]);
+assert_checkequal([1 2 3;4 5 6]+2*[1 2 3;4 5 6]-[1 2 3;4 5 6]*3, [0,0,0;0,0,0]);
+assert_checktrue([1 i 3;4 5 i]+2*[1 i 3;4 5 i]-[1 i 3;4 5 i]*3 == [0,0,0;0,0,0]);
+assert_checktrue([2*i -4*i 2*i]+2*[i -2*i i]+i*[2 -4 2]-[i -2*i i]*2 -2*[2 -4 2]*i == [0,0,0]);
+//
+assert_checkequal(2\[4 8 16]/2-[1 2 4],[0,0,0]);
+assert_checktrue(i\[2*i 2 i*4]/i-[-i*2 -2 -4*i] == [0,0,0]);
+// element wise operations
+assert_checkequal([1 2;3 4;5 6].*[1 2;3 4;5 6]-[1 4;9 16;25 36],[0,0;0,0;0,0]);
+assert_checktrue([1 2;3 4;5 6*i].*[1 2;3 4;5 6]-[1 4;9 16;25 36*i] == [0,0;0,0;0,0]);
+assert_checktrue([1 2;3 4;5 6].*[1 2;3 4;5 6*i]-[1 4;9 16;25 36*i] == [0,0;0,0;0,0]);
+assert_checktrue([1 2;3 4;5 6*i].*[1 2;3 4;5 6*i]-[1 4;9 16;25 -36] == [0,0;0,0;0,0]);
+//
+assert_checkequal([2 9 8;3 10 15]./[2 3 4;3 5 5]-[1 3 2;1 2 3],[0,0,0;0,0,0]);
+assert_checktrue([2 9*i 8;3 10 15]./[2 3 4;3 5 5]-[1 3*i 2;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([2 9 8;3 10 15]./[2*i 3 4;3 5 5]-[-i 3 2;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([2*i 9 8;3 10 15]./[2*i 3 4;3 5 5]-[1 3 2;1 2 3] == [0,0,0;0,0,0]);
+//
+assert_checkequal([2 3 4;3 5 5].\[2 9 8;3 10 15]-[1 3 2;1 2 3],[0,0,0;0,0,0]);
+assert_checktrue([2 i 4;3 5 5].\[2 9 8;3 10 15]-[1 -9*i 2 ;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([2 3 4;3 5 5].\[i 9 8;3 10 15]-[.5*i 3 2;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([i 3 4;3 5 5].\[i 9 8;3 10 15]-[1 3 2;1 2 3] == [0,0,0;0,0,0]);
+//multiplication
+assert_checkequal([1 2 3;4 5 6]*[3;2;1]-[10;28],[0;0]);
+assert_checktrue([1 i 3;4 5 6]*[3;2;1]-[6+2*i;28] == [0;0]);
+assert_checktrue([1 2 3;4 5 6]*[i;2;1]-[i+7;4*i+16] == [0;0]);
+assert_checktrue([1 i 3;2*i,-i,1]*[i;-i;i]-[4*i+1;-3+i] == [0;0]);
+//eye
+assert_checkequal(eye(4,4),[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]);
+//a+-b*eye a*eye+-b a+-eye*b eye*a+-b
+assert_checkequal(-2*eye()+[1 2;3 4]+eye()*2-[1 2;3 4],[0,0;0,0]);
+assert_checktrue(-2*i*eye()+[1 2;3 4]+eye()*2*i-[1 2;3 4] == [0 0;0 0]);
+// :
+assert_checkequal(1:10,[1 2 3 4 5 6 7 8 9 10]);
+assert_checkalmostequal(1:.1:2,[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2]);
+// for
+for k=1:3,for l=1:2,a(k,l)=k+l;end;end;
+assert_checkequal(a,[2,3;3,4;4,5]);
+assert_checkequal(diag([1 2 3])-[1 0 0;0 2 0;0 0 3],[0 0 0;0 0 0;0 0 0]);
+assert_checktrue(diag([1 i 2])-[1 0 0;0 i 0;0 0 2] == [0,0,0;0,0,0;0,0,0]);
+a=[1 2 3 4;5 6 7 8];
+c=a;
+c(1,1)=i;
+assert_checkequal(diag(a)-[1;6],[0;0]);
+assert_checkequal(diag(a,1)-[2;7],[0;0]);
+assert_checkequal(diag(a,-1)-[5],0);
+assert_checkequal(diag(a,4),[]);
+assert_checktrue(diag(c)-[i;6] == [0;0]);
+assert_checktrue(diag(c,1)-[2;7] == [0;0]);
+assert_checktrue(diag(c,-1)-[5] == 0);
+assert_checktrue(diag(c,4) == []);
+//
+assert_checkequal(eye(a),[1,0,0,0;0,1,0,0]);
+assert_checktrue(eye(c)==[1,0,0,0;0,1,0,0]);
+assert_checktrue(eye(3,3)==[1,0,0;0,1,0;0,0,1]);
+assert_checkequal(eye(2,3),[1,0,0;0,1,0]);
+//
+assert_checkequal(ones(a),[1,1,1,1;1,1,1,1]);
+assert_checkequal(ones(c),[1,1,1,1;1,1,1,1]);
+assert_checkequal(ones(3,3),[1,1,1;1,1,1;1,1,1]);
+assert_checkequal(ones(3,2),[1,1;1,1;1,1]);
+//
+rand(a)
+ ans  =
+    0.2113249    0.0002211    0.6653811    0.8497452  
+    0.7560439    0.3303271    0.6283918    0.6857310  
+rand(c)
+ ans  =
+         column 1 to 2
+    0.8782165 + 0.2312237i    0.5608486 + 0.8833888i  
+    0.0683740 + 0.2164633i    0.6623569 + 0.6525135i  
+         column 3 to 4
+    0.7263507 + 0.3076091i    0.5442573 + 0.2146008i  
+    0.1985144 + 0.9329616i    0.2320748 + 0.312642i   
+rand(3,3)
+ ans  =
+    0.3616361    0.4826472    0.5015342  
+    0.2922267    0.3321719    0.4368588  
+    0.5664249    0.5935095    0.2693125  
+rand(3,2)
+ ans  =
+    0.6325745    0.0437334  
+    0.4051954    0.4818509  
+    0.9184708    0.2639556  
+rand()
+ ans  =
+    0.4148104  
+rand('uniform')
+rand('normal')
+rand('seed',5)
+rand('seed',0)
+//
+abs(c)
+ ans  =
+    1.    2.    3.    4.  
+    5.    6.    7.    8.  
+abs(a)
+ ans  =
+    1.    2.    3.    4.  
+    5.    6.    7.    8.  
+//
+real(c)
+ ans  =
+    0.    2.    3.    4.  
+    5.    6.    7.    8.  
+imag(c)
+ ans  =
+    1.    0.    0.    0.  
+    0.    0.    0.    0.  
+real(a)
+ ans  =
+    1.    2.    3.    4.  
+    5.    6.    7.    8.  
+imag(a)
+ ans  =
+    0.    0.    0.    0.  
+    0.    0.    0.    0.  
+//
+round(rand(3,3))
+ ans  =
+  - 1.    1.    1.  
+    1.    1.    2.  
+    1.    0.    1.  
+//
+conj(a)
+ ans  =
+    1.    2.    3.    4.  
+    5.    6.    7.    8.  
+conj(c)
+ ans  =
+  - i      2.    3.    4.  
+    5.     6.    7.    8.  
+//
+size(a)
+ ans  =
+    2.    4.  
+[m,n]=size(a)
+ n  =
+    4.  
+ m  =
+    2.  
+//
+triu(a)
+ ans  =
+    1.    2.    3.    4.  
+    0.    6.    7.    8.  
+tril(a)
+ ans  =
+    1.    0.    0.    0.  
+    5.    6.    0.    0.  
+triu(a,1)
+ ans  =
+    0.    2.    3.    4.  
+    0.    0.    7.    8.  
+triu(a,-1)
+ ans  =
+    1.    2.    3.    4.  
+    5.    6.    7.    8.  
+tril(a,1)
+ ans  =
+    1.    2.    0.    0.  
+    5.    6.    7.    0.  
+tril(a,-1)
+ ans  =
+    0.    0.    0.    0.  
+    5.    0.    0.    0.  
+triu(c)
+ ans  =
+    i      2.    3.    4.  
+    0      6.    7.    8.  
+tril(c)
+ ans  =
+    i      0     0    0  
+    5.     6.    0    0  
+triu(c,1)
+ ans  =
+    0    2.    3.    4.  
+    0    0     7.    8.  
+triu(c,10)
+ ans  =
+    0    0    0    0  
+    0    0    0    0  
+triu(c,-1)
+ ans  =
+    i      2.    3.    4.  
+    5.     6.    7.    8.  
+triu(c,-10)
+ ans  =
+    i      2.    3.    4.  
+    5.     6.    7.    8.  
+tril(c,1)
+ ans  =
+    i      2.    0     0  
+    5.     6.    7.    0  
+tril(c,10)
+ ans  =
+    i      2.    3.    4.  
+    5.     6.    7.    8.  
+tril(c,-1)
+ ans  =
+    0     0    0    0  
+    5.    0    0    0  
+tril(c,-10)
+ ans  =
+    0    0    0    0  
+    0    0    0    0  
diff --git a/scilab/modules/core/tests/unit_tests/basic_operations.tst b/scilab/modules/core/tests/unit_tests/basic_operations.tst
new file mode 100644 (file)
index 0000000..b7423fe
--- /dev/null
@@ -0,0 +1,146 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab basic operations
+
+pi=%pi;
+i=%i;
+e=%e;
+1;
+a=1;
+b=[1 2 3];
+c=[1 2 3;4 5 6];
+d=[1 2 3;4 5 6]';
+d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15];
+d=[1 2;3 4];
+e1=[[1 2] [3 4];[5 6 7 8];[9;10;11;12]'];
+f([1 3 5],[1 2 3])=[-1 -2 -3;-4 -5 -6;-7 -8 -9];
+g=[i,2,3;1 i 3;1 2 i];
+h=[i 1 2 i 3];
+o=[1 i i 2 3]';
+b(2)=3;
+e1(1,3)=1;
+p='apcdefghijklmnopqrstuvwxyz0123456789';
+// test de stackg
+a,b,c,d,e1,f,g,h,o,p
+assert_checkequal(b(2),3);
+assert_checkequal(e1(1,3),1);
+assert_checkequal(e1([1 2],[3 4]),[1 4;7 8]);
+assert_checkequal(e1(1:2,:),[1 2 1 4;5 6 7 8]);
+assert_checkequal(e1(:,4),[4; 8; 12]);
+assert_checkequal(e1(:,:),[1 2 1 4; 5 6 7 8; 9 10 11 12]);
+assert_checkequal(g(1,1),i);
+assert_checkequal(g(:,1),[i;1;1]);
+assert_checkequal(g(1:2,:),[i,2,3; 1,i,3]);
+assert_checkequal(g(:,:),[i,2,3;1,i,3;1,2,i]);
+assert_checkequal(o',[1 i i 2 3]);
+//test de stack2
+//
+// additions...
+assert_checkequal([1 2 3;4 5 6]-[1 2 3;4 5 6],[0,0,0;0,0,0]);
+assert_checkequal([1 2 3;4 5 6]+2*[1 2 3;4 5 6]-[1 2 3;4 5 6]*3, [0,0,0;0,0,0]);
+assert_checktrue([1 i 3;4 5 i]+2*[1 i 3;4 5 i]-[1 i 3;4 5 i]*3 == [0,0,0;0,0,0]);
+assert_checktrue([2*i -4*i 2*i]+2*[i -2*i i]+i*[2 -4 2]-[i -2*i i]*2 -2*[2 -4 2]*i == [0,0,0]);
+//
+assert_checkequal(2\[4 8 16]/2-[1 2 4],[0,0,0]);
+assert_checktrue(i\[2*i 2 i*4]/i-[-i*2 -2 -4*i] == [0,0,0]);
+// element wise operations
+assert_checkequal([1 2;3 4;5 6].*[1 2;3 4;5 6]-[1 4;9 16;25 36],[0,0;0,0;0,0]);
+assert_checktrue([1 2;3 4;5 6*i].*[1 2;3 4;5 6]-[1 4;9 16;25 36*i] == [0,0;0,0;0,0]);
+assert_checktrue([1 2;3 4;5 6].*[1 2;3 4;5 6*i]-[1 4;9 16;25 36*i] == [0,0;0,0;0,0]);
+assert_checktrue([1 2;3 4;5 6*i].*[1 2;3 4;5 6*i]-[1 4;9 16;25 -36] == [0,0;0,0;0,0]);
+//
+assert_checkequal([2 9 8;3 10 15]./[2 3 4;3 5 5]-[1 3 2;1 2 3],[0,0,0;0,0,0]);
+assert_checktrue([2 9*i 8;3 10 15]./[2 3 4;3 5 5]-[1 3*i 2;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([2 9 8;3 10 15]./[2*i 3 4;3 5 5]-[-i 3 2;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([2*i 9 8;3 10 15]./[2*i 3 4;3 5 5]-[1 3 2;1 2 3] == [0,0,0;0,0,0]);
+//
+assert_checkequal([2 3 4;3 5 5].\[2 9 8;3 10 15]-[1 3 2;1 2 3],[0,0,0;0,0,0]);
+assert_checktrue([2 i 4;3 5 5].\[2 9 8;3 10 15]-[1 -9*i 2 ;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([2 3 4;3 5 5].\[i 9 8;3 10 15]-[.5*i 3 2;1 2 3] == [0,0,0;0,0,0]);
+assert_checktrue([i 3 4;3 5 5].\[i 9 8;3 10 15]-[1 3 2;1 2 3] == [0,0,0;0,0,0]);
+//multiplication
+assert_checkequal([1 2 3;4 5 6]*[3;2;1]-[10;28],[0;0]);
+assert_checktrue([1 i 3;4 5 6]*[3;2;1]-[6+2*i;28] == [0;0]);
+assert_checktrue([1 2 3;4 5 6]*[i;2;1]-[i+7;4*i+16] == [0;0]);
+assert_checktrue([1 i 3;2*i,-i,1]*[i;-i;i]-[4*i+1;-3+i] == [0;0]);
+//eye
+assert_checkequal(eye(4,4),[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]);
+//a+-b*eye a*eye+-b a+-eye*b eye*a+-b
+assert_checkequal(-2*eye()+[1 2;3 4]+eye()*2-[1 2;3 4],[0,0;0,0]);
+assert_checktrue(-2*i*eye()+[1 2;3 4]+eye()*2*i-[1 2;3 4] == [0 0;0 0]);
+// :
+assert_checkequal(1:10,[1 2 3 4 5 6 7 8 9 10]);
+assert_checkalmostequal(1:.1:2,[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2]);
+// for
+for k=1:3,for l=1:2,a(k,l)=k+l;end;end;
+assert_checkequal(a,[2,3;3,4;4,5]);
+assert_checkequal(diag([1 2 3])-[1 0 0;0 2 0;0 0 3],[0 0 0;0 0 0;0 0 0]);
+assert_checktrue(diag([1 i 2])-[1 0 0;0 i 0;0 0 2] == [0,0,0;0,0,0;0,0,0]);
+a=[1 2 3 4;5 6 7 8];
+c=a;
+c(1,1)=i;
+assert_checkequal(diag(a)-[1;6],[0;0]);
+assert_checkequal(diag(a,1)-[2;7],[0;0]);
+assert_checkequal(diag(a,-1)-[5],0);
+assert_checkequal(diag(a,4),[]);
+assert_checktrue(diag(c)-[i;6] == [0;0]);
+assert_checktrue(diag(c,1)-[2;7] == [0;0]);
+assert_checktrue(diag(c,-1)-[5] == 0);
+assert_checktrue(diag(c,4) == []);
+//
+assert_checkequal(eye(a),[1,0,0,0;0,1,0,0]);
+assert_checktrue(eye(c)==[1,0,0,0;0,1,0,0]);
+assert_checktrue(eye(3,3)==[1,0,0;0,1,0;0,0,1]);
+assert_checkequal(eye(2,3),[1,0,0;0,1,0]);
+//
+assert_checkequal(ones(a),[1,1,1,1;1,1,1,1]);
+assert_checkequal(ones(c),[1,1,1,1;1,1,1,1]);
+assert_checkequal(ones(3,3),[1,1,1;1,1,1;1,1,1]);
+assert_checkequal(ones(3,2),[1,1;1,1;1,1]);
+//
+rand(a)
+rand(c)
+rand(3,3)
+rand(3,2)
+rand()
+rand('uniform')
+rand('normal')
+rand('seed',5)
+rand('seed',0)
+//
+abs(c)
+abs(a)
+//
+real(c)
+imag(c)
+real(a)
+imag(a)
+//
+round(rand(3,3))
+//
+conj(a)
+conj(c)
+//
+size(a)
+[m,n]=size(a)
+//
+triu(a)
+tril(a)
+triu(a,1)
+triu(a,-1)
+tril(a,1)
+tril(a,-1)
+triu(c)
+tril(c)
+triu(c,1)
+triu(c,10)
+triu(c,-1)
+triu(c,-10)
+tril(c,1)
+tril(c,10)
+tril(c,-1)
+tril(c,-10)
diff --git a/scilab/modules/core/tests/unit_tests/mat_functions.dia.ref b/scilab/modules/core/tests/unit_tests/mat_functions.dia.ref
new file mode 100644 (file)
index 0000000..31cd3d6
--- /dev/null
@@ -0,0 +1,81 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab maxtrix functions
+pi=%pi;
+i=%i;
+e=%e;
+// matdsr  matdsc
+a=rand(4,4);ac=a+i*rand(4,4);t=a*a';tc=ac*ac';
+tc=triu(tc,1)+triu(tc,1)'+diag(real(diag(tc)));
+tc=tc/max(abs(spec(tc))+1);
+// matrix functions
+s=sqrtm(t);
+assert_checktrue(norm(t-s*s,1) < 500*%eps);
+s=logm(t);
+assert_checktrue(norm(t-expm(s)) < 500*%eps);
+s=sqrtm(tc);
+assert_checktrue(norm(tc-s*s,1) < 500*%eps);
+s=expm(tc);s=triu(s,1)+triu(s,1)'+diag(real(diag(s)));
+assert_checktrue(norm(logm(s)-tc,1)< 500*%eps);
+assert_checktrue(norm(sinm(t)**2+cosm(t)**2-eye(),1) < 50*%eps);
+assert_checktrue(norm(sinm(tc)**2+cosm(tc)**2-eye(),1) < 50*%eps);
+//poly and root
+p=rand(5,1);pc=p+i*rand(5,1);x=poly(0,'x');
+assert_checktrue(norm(gsort(p )-gsort(real(roots(poly(p,'x'))))) < 1000*%eps);
+assert_checktrue(norm(gsort(imag(pc))-gsort(real(roots(poly(imag(pc),'x'))))) < 10000*%eps);
+//**
+assert_checktrue(norm(t^(-1)-inv(t),1) < 200*%eps);
+assert_checktrue(norm(tc**(-1)-inv(tc),1) < 200*%eps);
+x=rand()+i*rand();
+assert_checktrue(norm((t**x)*(t^(-x))-eye(),1) < 200*%eps);
+assert_checktrue(norm((tc**x)*(tc**(-x))-eye(),1) < 200*%eps);
+//element op
+assert_checktrue(norm(sin([0 pi/2 pi 3*pi/2])-[0 1 0 -1],1) < 10*%eps);
+assert_checktrue(norm(cos([0 pi/2 pi 3*pi/2])-[1 0 -1 0],1) < 10*%eps);
+assert_checktrue(norm(log([e 1/e e**2])-[1 -1 2],1) < 10*%eps);
+assert_checktrue(norm(exp([1 -1 2])-[e 1/e e**2],1) < 10*%eps);
+assert_checktrue(norm(sqrt([1 -1 4])-[1 i 2],1) < 10*%eps);
+assert_checktrue(norm(sin(x)-(exp(i*x)-exp(-i*x))/(2*i),1) < 10*%eps);
+assert_checktrue(norm(cos(x)-(exp(i*x)+exp(-i*x))/2,1) < 10*%eps);
+assert_checktrue(norm(sqrt(x)^2-x,1) < 10*%eps);
+assert_checktrue(norm(log(exp(x))-x,1) < 10*%eps);
+// triu
+z=poly(0,'z');a=[z 1 -z+1  8;z*z 10*z 5 -z;3 7 z+1 -1-z];
+[m,n]=size(a);mn=min([m n]);a1=a;l=1;
+//
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
+//
+a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
+//
+a=a+%i*[1 2 3 4;5 6 7 8;9 10 11 12]';
+[m,n]=size(a);mn=min([m n]);a1=a;l=1;
+//
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
+//
+a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
diff --git a/scilab/modules/core/tests/unit_tests/mat_functions.tst b/scilab/modules/core/tests/unit_tests/mat_functions.tst
new file mode 100644 (file)
index 0000000..e7899a3
--- /dev/null
@@ -0,0 +1,84 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab maxtrix functions
+
+pi=%pi;
+i=%i;
+e=%e;
+
+// matdsr  matdsc
+a=rand(4,4);ac=a+i*rand(4,4);t=a*a';tc=ac*ac';
+tc=triu(tc,1)+triu(tc,1)'+diag(real(diag(tc)));
+tc=tc/max(abs(spec(tc))+1);
+
+// matrix functions
+s=sqrtm(t);
+assert_checktrue(norm(t-s*s,1) < 500*%eps);
+s=logm(t);
+assert_checktrue(norm(t-expm(s)) < 500*%eps);
+s=sqrtm(tc);
+assert_checktrue(norm(tc-s*s,1) < 500*%eps);
+s=expm(tc);s=triu(s,1)+triu(s,1)'+diag(real(diag(s)));
+assert_checktrue(norm(logm(s)-tc,1)< 500*%eps);
+assert_checktrue(norm(sinm(t)**2+cosm(t)**2-eye(),1) < 50*%eps);
+assert_checktrue(norm(sinm(tc)**2+cosm(tc)**2-eye(),1) < 50*%eps);
+//poly and root
+p=rand(5,1);pc=p+i*rand(5,1);x=poly(0,'x');
+assert_checktrue(norm(gsort(p )-gsort(real(roots(poly(p,'x'))))) < 1000*%eps);
+assert_checktrue(norm(gsort(imag(pc))-gsort(real(roots(poly(imag(pc),'x'))))) < 10000*%eps);
+//**
+assert_checktrue(norm(t^(-1)-inv(t),1) < 200*%eps);
+assert_checktrue(norm(tc**(-1)-inv(tc),1) < 200*%eps);
+x=rand()+i*rand();
+assert_checktrue(norm((t**x)*(t^(-x))-eye(),1) < 200*%eps);
+assert_checktrue(norm((tc**x)*(tc**(-x))-eye(),1) < 200*%eps);
+//element op
+assert_checktrue(norm(sin([0 pi/2 pi 3*pi/2])-[0 1 0 -1],1) < 10*%eps);
+assert_checktrue(norm(cos([0 pi/2 pi 3*pi/2])-[1 0 -1 0],1) < 10*%eps);
+assert_checktrue(norm(log([e 1/e e**2])-[1 -1 2],1) < 10*%eps);
+assert_checktrue(norm(exp([1 -1 2])-[e 1/e e**2],1) < 10*%eps);
+assert_checktrue(norm(sqrt([1 -1 4])-[1 i 2],1) < 10*%eps);
+assert_checktrue(norm(sin(x)-(exp(i*x)-exp(-i*x))/(2*i),1) < 10*%eps);
+assert_checktrue(norm(cos(x)-(exp(i*x)+exp(-i*x))/2,1) < 10*%eps);
+assert_checktrue(norm(sqrt(x)^2-x,1) < 10*%eps);
+assert_checktrue(norm(log(exp(x))-x,1) < 10*%eps);
+// triu
+z=poly(0,'z');a=[z 1 -z+1  8;z*z 10*z 5 -z;3 7 z+1 -1-z];
+[m,n]=size(a);mn=min([m n]);a1=a;l=1;
+//
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
+//
+a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
+//
+a=a+%i*[1 2 3 4;5 6 7 8;9 10 11 12]';
+[m,n]=size(a);mn=min([m n]);a1=a;l=1;
+//
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
+//
+a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
+for dg=-(m-1):0,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
+for dg=1:n,
+   assert_checktrue(norm(coeff(triu(a,dg)-a1),1)<%eps);
+   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
diff --git a/scilab/modules/core/tests/unit_tests/scal_vect_mat.dia.ref b/scilab/modules/core/tests/unit_tests/scal_vect_mat.dia.ref
new file mode 100644 (file)
index 0000000..568047b
--- /dev/null
@@ -0,0 +1,156 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab scalars, vectors and matrix
+pi=%pi;
+i=%i;
+e=%e;
+// .^ TEST WITH  REAL VECTORS
+x1=1:3;
+x0=0:2;
+assert_checkequal(x1.^2,[1 4 9]);
+assert_checkequal(x0.^2,[0 1 4]);
+assert_checkequal(x1.^0,[1 1 1]);
+assert_checktrue(norm(x1.^(2*(1+%eps))-x1.^2)<100*%eps);
+assert_checktrue(norm(x0.^(2*(1+%eps))-x0.^2)<100*%eps);
+assert_checktrue(norm(x1.^(-2)-[1 0.25 1/9])<100*%eps);
+assert_checktrue(norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])<100*%eps);
+// COMPLEX CASE
+p=2+%eps*%i;
+assert_checktrue(norm(x1.^p-x1.^2)<100*%eps);
+assert_checktrue(norm(x0.^p-x0.^2)<100*%eps);
+assert_checktrue(norm(x1.^(-p)-x1.^(-2))<100*%eps);
+y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
+assert_checktrue(norm(x1.^2-[1 4 9])<100*%eps);
+assert_checktrue(norm(x0.^2-[0 1 4])<100*%eps);
+x1.^2.000000001;x0.^2.000000001;
+assert_checktrue(norm(x1.^2-[1 4 9])<100*%eps);
+assert_checktrue(norm(x0.^2-[0 1 4])<100*%eps);
+assert_checktrue(norm(x1.^(-2)-[1 0.25 1/9])<100*%eps);
+assert_checktrue(norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])<100*%eps);
+assert_checktrue(norm(x1.^p-x1.^2)<100*%eps);
+assert_checktrue(norm(x0.^p-x0.^2)<100*%eps);
+assert_checktrue(norm(x1.^(-p)-x1.^(-2))<100*%eps);
+//
+// EMPTY MATRIX
+//=============
+assert_checkequal([].^1,[]);
+assert_checkequal([].^[1 2 3],[]);
+assert_checkequal([1 2 3].^[],[]);
+assert_checkequal([].^[],[]);
+// SQUARE MATRIX
+//==============
+x1=[1 2;3 4];
+assert_checkequal(x1^1,x1);
+assert_checkequal(x1^(-1),inv(x1));
+assert_checkequal(x1^2,x1*x1);
+assert_checkequal(x1^(-2),inv(x1)^2);
+x1(1,1)=x1(1,1)+%i;
+assert_checktrue(x1^2==x1*x1);
+assert_checktrue(x1^(-2)==inv(x1)^2);
+assert_checktrue(x1^1==x1);
+assert_checktrue(x1^(-1)==inv(x1));
+assert_checktrue(rand(4,4)^0==eye(4,4));
+x1=[1 2;2 3];x2=x1^(1/2);
+assert_checktrue(norm(x2^(2)-x1)<100*%eps);
+x2=x1^(-1/2);
+assert_checktrue(norm(x2^(-2)-x1)<100*%eps);
+//TEST WITH POLYNOMIAL VECTOR AND MATRICES
+//---------------------------------------
+s=poly(0,'s');
+assert_checkequal(coeff(s^3+1),[1 0 0 1]);
+x1=[1 s+1 s.^3+1];
+assert_checkequal(x1.^2,[1 1+2*s+s.^2  1+2*s.^3+s.^6]);
+assert_checkequal(coeff(x1.^0),[1 1 1]);
+assert_checkequal(x1.^3,[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]);
+assert_checkequal(coeff(numer((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)]))),[0 0 0]);
+x1=[s+1 2*s;3+4*s^2 4];
+assert_checkequal(x1^1,x1);
+assert_checkequal(x1^(-1),inv(x1));
+assert_checkequal(x1^2,x1*x1);
+assert_checkequal(x1^(-2),inv(x1)^2);
+x1(1,1)=x1(1,1)+%i;
+assert_checktrue(x1^2==x1*x1);
+//if or(x1^(-2)<>inv(x1)^2) then bugmes();quit;end  //simp complexe non implemented
+assert_checktrue(x1^1==x1);
+//if or(x1^(-1)<>inv(x1)) then bugmes();quit;end //simp complexe non implemented
+//simple ops
+assert_checkfalse(1==0);
+assert_checkfalse(1<0);
+assert_checkfalse(1<=0);
+assert_checktrue(1==1);
+assert_checkfalse(~(1==1));
+assert_checkfalse(0>1);
+assert_checkfalse(0>=1);
+assert_checkfalse(1<>1);
+assert_checktrue(0<>1);
+assert_checkfalse('1'=='0');
+assert_checkfalse('1'<>'1');
+%s=poly(0,'s');
+assert_checkfalse(%s==0);
+assert_checkfalse(0==%s);
+assert_checktrue(%s==%s);
+assert_checkfalse(%s<>%s);
+assert_checkfalse(%s==%s+1);
+assert_checkfalse(%s+1==%s);
+assert_checkfalse(1/%s==0);
+assert_checkfalse(0==1/%s);
+assert_checktrue(1/%s==1/%s);
+assert_checkfalse(1/%s<>1/%s);
+assert_checkfalse(1/%s==1/%s+1);
+assert_checkfalse(1/%s+1==1/%s);
+assert_checktrue(1/%s<>1/%s+1);
+assert_checktrue(1/%s+1<>1/%s);
+l=list(1,[1 23],'adssa');
+l1=list(123,'sdwqqwq');
+assert_checkfalse(l==0);
+assert_checkfalse(0==l);
+assert_checktrue(l==l);
+assert_checkfalse(l<>l);
+assert_checkfalse(l==l1);
+assert_checkfalse(l1==l);
+assert_checktrue(l<>l1);
+assert_checktrue(l1<>l);
+assert_checkfalse(%t&1==2);
+assert_checktrue(%t|1==2);
+assert_checkfalse(%t&-1==2);
+assert_checktrue(%t|-1==2);
+assert_checkfalse(1<2&1==2);
+assert_checktrue(1<2|1==2);
+assert_checkfalse(1<2&-1==2);
+assert_checktrue(1<2|-1==2);
+assert_checkfalse(2>1&1==2);
+assert_checktrue(2>1|1==2);
+assert_checkfalse(2>1&-1==2);
+assert_checktrue(2>1|-1==2);
+assert_checkfalse(1==1&1==2);
+assert_checktrue(1==1|1==2);
+assert_checkfalse(1==1&-1==2);
+assert_checktrue(1==1|-1==2);
+assert_checkfalse(1<>2&1==2);
+assert_checktrue(1<>2|1==2);
+assert_checkfalse(1<>2&-1==2);
+assert_checktrue(1<>2|-1==2);
+assert_checkfalse(%t&1>2);
+assert_checktrue(%t|1>2);
+assert_checkfalse(%t&-1>2);
+assert_checktrue(%t|-1>2);
+assert_checkfalse(1<2&1>2);
+assert_checktrue(1<2|1>2);
+assert_checkfalse(1<2&-1>2);
+assert_checktrue(1<2|-1>2);
+assert_checkfalse(2>1&1>2);
+assert_checktrue(2>1|1>2);
+assert_checkfalse(2>1&-1>2);
+assert_checktrue(2>1|-1>2);
+assert_checkfalse(1==1&1>2);
+assert_checktrue(1==1|1>2);
+assert_checkfalse(1==1&-1>2);
+assert_checktrue(1==1|-1>2);
+assert_checkfalse(1<>2&1>2);
+assert_checktrue(1<>2|1>2);
+assert_checkfalse(1<>2&-1>2);
+assert_checktrue(1<>2|-1>2);
diff --git a/scilab/modules/core/tests/unit_tests/scal_vect_mat.tst b/scilab/modules/core/tests/unit_tests/scal_vect_mat.tst
new file mode 100644 (file)
index 0000000..23cf3c2
--- /dev/null
@@ -0,0 +1,183 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// Unit test for Scilab scalars, vectors and matrix
+
+pi=%pi;
+i=%i;
+e=%e;
+
+// .^ TEST WITH  REAL VECTORS
+
+x1=1:3;
+x0=0:2;
+assert_checkequal(x1.^2,[1 4 9]);
+assert_checkequal(x0.^2,[0 1 4]);
+assert_checkequal(x1.^0,[1 1 1]);
+
+assert_checktrue(norm(x1.^(2*(1+%eps))-x1.^2)<100*%eps);
+assert_checktrue(norm(x0.^(2*(1+%eps))-x0.^2)<100*%eps);
+
+assert_checktrue(norm(x1.^(-2)-[1 0.25 1/9])<100*%eps);
+assert_checktrue(norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])<100*%eps);
+
+// COMPLEX CASE
+p=2+%eps*%i;
+assert_checktrue(norm(x1.^p-x1.^2)<100*%eps);
+assert_checktrue(norm(x0.^p-x0.^2)<100*%eps);
+assert_checktrue(norm(x1.^(-p)-x1.^(-2))<100*%eps);
+
+y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
+assert_checktrue(norm(x1.^2-[1 4 9])<100*%eps);
+assert_checktrue(norm(x0.^2-[0 1 4])<100*%eps);
+
+x1.^2.000000001;x0.^2.000000001;
+assert_checktrue(norm(x1.^2-[1 4 9])<100*%eps);
+assert_checktrue(norm(x0.^2-[0 1 4])<100*%eps);
+
+assert_checktrue(norm(x1.^(-2)-[1 0.25 1/9])<100*%eps);
+assert_checktrue(norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])<100*%eps);
+assert_checktrue(norm(x1.^p-x1.^2)<100*%eps);
+assert_checktrue(norm(x0.^p-x0.^2)<100*%eps);
+assert_checktrue(norm(x1.^(-p)-x1.^(-2))<100*%eps);
+//
+// EMPTY MATRIX
+//=============
+assert_checkequal([].^1,[]);
+assert_checkequal([].^[1 2 3],[]);
+assert_checkequal([1 2 3].^[],[]);
+assert_checkequal([].^[],[]);
+
+// SQUARE MATRIX
+//==============
+
+x1=[1 2;3 4];
+assert_checkequal(x1^1,x1);
+assert_checkequal(x1^(-1),inv(x1));
+assert_checkequal(x1^2,x1*x1);
+assert_checkequal(x1^(-2),inv(x1)^2);
+
+x1(1,1)=x1(1,1)+%i;
+assert_checktrue(x1^2==x1*x1);
+assert_checktrue(x1^(-2)==inv(x1)^2);
+assert_checktrue(x1^1==x1);
+assert_checktrue(x1^(-1)==inv(x1));
+
+assert_checktrue(rand(4,4)^0==eye(4,4));
+
+
+x1=[1 2;2 3];x2=x1^(1/2);
+assert_checktrue(norm(x2^(2)-x1)<100*%eps);
+x2=x1^(-1/2);
+assert_checktrue(norm(x2^(-2)-x1)<100*%eps);
+
+//TEST WITH POLYNOMIAL VECTOR AND MATRICES
+//---------------------------------------
+s=poly(0,'s');
+assert_checkequal(coeff(s^3+1),[1 0 0 1]);
+
+x1=[1 s+1 s.^3+1];
+assert_checkequal(x1.^2,[1 1+2*s+s.^2  1+2*s.^3+s.^6]);
+assert_checkequal(coeff(x1.^0),[1 1 1]);
+assert_checkequal(x1.^3,[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]);
+assert_checkequal(coeff(numer((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)]))),[0 0 0]);
+
+
+x1=[s+1 2*s;3+4*s^2 4];
+assert_checkequal(x1^1,x1);
+assert_checkequal(x1^(-1),inv(x1));
+assert_checkequal(x1^2,x1*x1);
+assert_checkequal(x1^(-2),inv(x1)^2);
+
+x1(1,1)=x1(1,1)+%i;
+assert_checktrue(x1^2==x1*x1);
+//if or(x1^(-2)<>inv(x1)^2) then pause,end  //simp complexe non implemented
+assert_checktrue(x1^1==x1);
+//if or(x1^(-1)<>inv(x1)) then pause,end //simp complexe non implemented
+
+
+//simple ops
+assert_checkfalse(1==0);
+assert_checkfalse(1<0);
+assert_checkfalse(1<=0);
+assert_checktrue(1==1);
+assert_checkfalse(~(1==1));
+assert_checkfalse(0>1);
+assert_checkfalse(0>=1);
+assert_checkfalse(1<>1);
+assert_checktrue(0<>1);
+assert_checkfalse('1'=='0');
+assert_checkfalse('1'<>'1');
+
+%s=poly(0,'s');
+assert_checkfalse(%s==0);
+assert_checkfalse(0==%s);
+assert_checktrue(%s==%s);
+assert_checkfalse(%s<>%s);
+assert_checkfalse(%s==%s+1);
+assert_checkfalse(%s+1==%s);
+
+assert_checkfalse(1/%s==0);
+assert_checkfalse(0==1/%s);
+assert_checktrue(1/%s==1/%s);
+assert_checkfalse(1/%s<>1/%s);
+assert_checkfalse(1/%s==1/%s+1);
+assert_checkfalse(1/%s+1==1/%s);
+assert_checktrue(1/%s<>1/%s+1);
+assert_checktrue(1/%s+1<>1/%s);
+
+l=list(1,[1 23],'adssa');
+l1=list(123,'sdwqqwq');
+assert_checkfalse(l==0);
+assert_checkfalse(0==l);
+assert_checktrue(l==l);
+assert_checkfalse(l<>l);
+assert_checkfalse(l==l1);
+assert_checkfalse(l1==l);
+assert_checktrue(l<>l1);
+assert_checktrue(l1<>l);
+
+assert_checkfalse(%t&1==2);
+assert_checktrue(%t|1==2);
+assert_checkfalse(%t&-1==2);
+assert_checktrue(%t|-1==2);
+assert_checkfalse(1<2&1==2);
+assert_checktrue(1<2|1==2);
+assert_checkfalse(1<2&-1==2);
+assert_checktrue(1<2|-1==2);
+assert_checkfalse(2>1&1==2);
+assert_checktrue(2>1|1==2);
+assert_checkfalse(2>1&-1==2);
+assert_checktrue(2>1|-1==2);
+assert_checkfalse(1==1&1==2);
+assert_checktrue(1==1|1==2);
+assert_checkfalse(1==1&-1==2);
+assert_checktrue(1==1|-1==2);
+assert_checkfalse(1<>2&1==2);
+assert_checktrue(1<>2|1==2);
+assert_checkfalse(1<>2&-1==2);
+assert_checktrue(1<>2|-1==2);
+
+assert_checkfalse(%t&1>2);
+assert_checktrue(%t|1>2);
+assert_checkfalse(%t&-1>2);
+assert_checktrue(%t|-1>2);
+assert_checkfalse(1<2&1>2);
+assert_checktrue(1<2|1>2);
+assert_checkfalse(1<2&-1>2);
+assert_checktrue(1<2|-1>2);
+assert_checkfalse(2>1&1>2);
+assert_checktrue(2>1|1>2);
+assert_checkfalse(2>1&-1>2);
+assert_checktrue(2>1|-1>2);
+assert_checkfalse(1==1&1>2);
+assert_checktrue(1==1|1>2);
+assert_checkfalse(1==1&-1>2);
+assert_checktrue(1==1|-1>2);
+assert_checkfalse(1<>2&1>2);
+assert_checktrue(1<>2|1>2);
+assert_checkfalse(1<>2&-1>2);
+assert_checktrue(1<>2|-1>2);
diff --git a/scilab/modules/core/tests/unit_tests/scilab.dia.ref b/scilab/modules/core/tests/unit_tests/scilab.dia.ref
deleted file mode 100644 (file)
index cfea944..0000000
+++ /dev/null
@@ -1,1727 +0,0 @@
-// Copyright INRIA
-pi=%pi
- pi  =
-    3.1415927  
-i=%i
- i  =
-    i    
-e=%e
- e  =
-    2.7182818  
-//       tests
-//
-1
- ans  =
-    1.  
-a=1
- a  =
-    1.  
-b=[1 2 3]
- b  =
-    1.    2.    3.  
-c=[1 2 3;4 5 6]
- c  =
-    1.    2.    3.  
-    4.    5.    6.  
-d=[1 2 3;4 5 6]'
- d  =
-    1.    4.  
-    2.    5.  
-    3.    6.  
-d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15]
- d  =
-    1.     2.     3.     4.   
-    4.     5.     6.     7.   
-    8.     9.     10.    11.  
-    12.    13.    14.    15.  
-d=[1 2;3 4]
- d  =
-    1.    2.  
-    3.    4.  
-e1=[[1 2] [3 4];[5 6 7 8];[9;10;11;12]']
- e1  =
-    1.    2.     3.     4.   
-    5.    6.     7.     8.   
-    9.    10.    11.    12.  
-f([1 3 5],[1 2 3])=[-1 -2 -3;-4 -5 -6;-7 -8 -9]
- f  =
-  - 1.  - 2.  - 3.  
-    0.    0.    0.  
-  - 4.  - 5.  - 6.  
-    0.    0.    0.  
-  - 7.  - 8.  - 9.  
-g=[i,2,3;1 i 3;1 2 i]
- g  =
-    i      2.     3.   
-    1.     i      3.   
-    1.     2.     i    
-h=[i 1 2 i 3]
- h  =
-    i      1.    2.    i      3.  
-o=[1 i i 2 3]'
- o  =
-    1.   
-  - i    
-  - i    
-    2.   
-    3.   
-b(2)=3
- b  =
-    1.    3.    3.  
-e1(1,3)=1
- e1  =
-    1.    2.     1.     4.   
-    5.    6.     7.     8.   
-    9.    10.    11.    12.  
-p='apcdefghijklmnopqrstuvwxyz0123456789'
- p  =
- apcdefghijklmnopqrstuvwxyz0123456789   
-// test de stackg
-a,b,c,d,e1,f,g,h,o,p
- a  =
-    1.  
- b  =
-    1.    3.    3.  
- c  =
-    1.    2.    3.  
-    4.    5.    6.  
- d  =
-    1.    2.  
-    3.    4.  
- e1  =
-    1.    2.     1.     4.   
-    5.    6.     7.     8.   
-    9.    10.    11.    12.  
- f  =
-  - 1.  - 2.  - 3.  
-    0.    0.    0.  
-  - 4.  - 5.  - 6.  
-    0.    0.    0.  
-  - 7.  - 8.  - 9.  
- g  =
-    i      2.     3.   
-    1.     i      3.   
-    1.     2.     i    
- h  =
-    i      1.    2.    i      3.  
- o  =
-    1.   
-  - i    
-  - i    
-    2.   
-    3.   
- p  =
- apcdefghijklmnopqrstuvwxyz0123456789   
-b(2)
- ans  =
-    3.  
-e1(1,3)
- ans  =
-    1.  
-e1([1 2],[3 4])
- ans  =
-    1.    4.  
-    7.    8.  
-e1(1:2,:)
- ans  =
-    1.    2.    1.    4.  
-    5.    6.    7.    8.  
-e1(:,4)
- ans  =
-    4.   
-    8.   
-    12.  
-e1(:,:)
- ans  =
-    1.    2.     1.     4.   
-    5.    6.     7.     8.   
-    9.    10.    11.    12.  
-g(1,1)
- ans  =
-    i    
-g(:,1)
- ans  =
-    i    
-    1.   
-    1.   
-g(1:2,:)
- ans  =
-    i      2.     3.  
-    1.     i      3.  
-g(:,:)
- ans  =
-    i      2.     3.   
-    1.     i      3.   
-    1.     2.     i    
-o'
- ans  =
-    1.    i      i      2.    3.  
-//test de stack2
-//
-// additions...
-[1 2 3;4 5 6]-[1 2 3;4 5 6]
- ans  =
-    0.    0.    0.  
-    0.    0.    0.  
-[1 2 3;4 5 6]+2*[1 2 3;4 5 6]-[1 2 3;4 5 6]*3
- ans  =
-    0.    0.    0.  
-    0.    0.    0.  
-[1 i 3;4 5 i]+2*[1 i 3;4 5 i]-[1 i 3;4 5 i]*3
- ans  =
-    0    0    0  
-    0    0    0  
-[2*i -4*i 2*i]+2*[i -2*i i]+i*[2 -4 2]-[i -2*i i]*2 -2*[2 -4 2]*i
- ans  =
-    0    0    0  
-//
-2\[4 8 16]/2-[1 2 4]
- ans  =
-    0.    0.    0.  
-i\[2*i 2 i*4]/i-[-i*2 -2 -4*i]
- ans  =
-    0    0    0  
-// element wise operations
-[1 2;3 4;5 6].*[1 2;3 4;5 6]-[1 4;9 16;25 36]
- ans  =
-    0.    0.  
-    0.    0.  
-    0.    0.  
-[1 2;3 4;5 6*i].*[1 2;3 4;5 6]-[1 4;9 16;25 36*i]
- ans  =
-    0    0  
-    0    0  
-    0    0  
-[1 2;3 4;5 6].*[1 2;3 4;5 6*i]-[1 4;9 16;25 36*i]
- ans  =
-    0    0  
-    0    0  
-    0    0  
-[1 2;3 4;5 6*i].*[1 2;3 4;5 6*i]-[1 4;9 16;25 -36]
- ans  =
-    0    0  
-    0    0  
-    0    0  
-//
-[2 9 8;3 10 15]./[2 3 4;3 5 5]-[1 3 2;1 2 3]
- ans  =
-    0.    0.    0.  
-    0.    0.    0.  
-[2 9*i 8;3 10 15]./[2 3 4;3 5 5]-[1 3*i 2;1 2 3]
- ans  =
-    0    0    0  
-    0    0    0  
-[2 9 8;3 10 15]./[2*i 3 4;3 5 5]-[-i 3 2;1 2 3]
- ans  =
-    0    0    0  
-    0    0    0  
-[2*i 9 8;3 10 15]./[2*i 3 4;3 5 5]-[1 3 2;1 2 3]
- ans  =
-    0    0    0  
-    0    0    0  
-//
-[2 3 4;3 5 5].\[2 9 8;3 10 15]-[1 3 2;1 2 3]
- ans  =
-    0.    0.    0.  
-    0.    0.    0.  
-[2 i 4;3 5 5].\[2 9 8;3 10 15]-[1 -9*i 2 ;1 2 3]
- ans  =
-    0    0    0  
-    0    0    0  
-[2 3 4;3 5 5].\[i 9 8;3 10 15]-[.5*i 3 2;1 2 3]
- ans  =
-    0    0    0  
-    0    0    0  
-[i 3 4;3 5 5].\[i 9 8;3 10 15]-[1 3 2;1 2 3]
- ans  =
-    0    0    0  
-    0    0    0  
-//multiplication
-[1 2 3;4 5 6]*[3;2;1]-[10;28]
- ans  =
-    0.  
-    0.  
-[1 i 3;4 5 6]*[3;2;1]-[6+2*i;28]
- ans  =
-    0  
-    0  
-[1 2 3;4 5 6]*[i;2;1]-[i+7;4*i+16]
- ans  =
-    0  
-    0  
-[1 i 3;2*i,-i,1]*[i;-i;i]-[4*i+1;-3+i]
- ans  =
-    0  
-    0  
-//eye
-eye(4,4)
- ans  =
-    1.    0.    0.    0.  
-    0.    1.    0.    0.  
-    0.    0.    1.    0.  
-    0.    0.    0.    1.  
-//a+-b*eye a*eye+-b a+-eye*b eye*a+-b
--2*eye()+[1 2;3 4]+eye()*2-[1 2;3 4]
- ans  =
-    0.    0.  
-    0.    0.  
--2*i*eye()+[1 2;3 4]+eye()*2*i-[1 2;3 4]
- ans  =
-    0    0  
-    0    0  
-// :
-1:10
- ans  =
-    1.    2.    3.    4.    5.    6.    7.    8.    9.    10.  
-1:.1:2
- ans  =
-         column  1 to 10
-    1.    1.1    1.2    1.3    1.4    1.5    1.6    1.7    1.8    1.9  
-         column 11
-    2.  
-// for
-for k=1:3,for l=1:2,a(k,l)=k+l;end;end;a
- a  =
-    2.    3.  
-    3.    4.  
-    4.    5.  
-diag([1 2 3])-[1 0 0;0 2 0;0 0 3]
- ans  =
-    0.    0.    0.  
-    0.    0.    0.  
-    0.    0.    0.  
-diag([1 i 2])-[1 0 0;0 i 0;0 0 2]
- ans  =
-    0    0    0  
-    0    0    0  
-    0    0    0  
-a=[1 2 3 4;5 6 7 8];
-c=a;
-c(1,1)=i;
-diag(a)-[1;6]
- ans  =
-    0.  
-    0.  
-diag(a,1)-[2;7]
- ans  =
-    0.  
-    0.  
-diag(a,-1)-[5]
- ans  =
-    0.  
-diag(a,4)
- ans  =
-     []
-diag(c)-[i;6]
- ans  =
-    0  
-    0  
-diag(c,1)-[2;7]
- ans  =
-    0  
-    0  
-diag(c,-1)-[5]
- ans  =
-    0  
-diag(c,4)
- ans  =
-     []
-//
-eye(a)
- ans  =
-    1.    0.    0.    0.  
-    0.    1.    0.    0.  
-eye(c)
- ans  =
-    1.    0.    0.    0.  
-    0.    1.    0.    0.  
-eye(3,3)
- ans  =
-    1.    0.    0.  
-    0.    1.    0.  
-    0.    0.    1.  
-eye(2,3)
- ans  =
-    1.    0.    0.  
-    0.    1.    0.  
-//
-ones(a)
- ans  =
-    1.    1.    1.    1.  
-    1.    1.    1.    1.  
-ones(c)
- ans  =
-    1.    1.    1.    1.  
-    1.    1.    1.    1.  
-ones(3,3)
- ans  =
-    1.    1.    1.  
-    1.    1.    1.  
-    1.    1.    1.  
-ones(3,2)
- ans  =
-    1.    1.  
-    1.    1.  
-    1.    1.  
-//
-rand(a)
- ans  =
-    0.2113249    0.0002211    0.6653811    0.8497452  
-    0.7560439    0.3303271    0.6283918    0.6857310  
-rand(c)
- ans  =
-         column 1 to 2
-    0.8782165 + 0.2312237i    0.5608486 + 0.8833888i  
-    0.0683740 + 0.2164633i    0.6623569 + 0.6525135i  
-         column 3 to 4
-    0.7263507 + 0.3076091i    0.5442573 + 0.2146008i  
-    0.1985144 + 0.9329616i    0.2320748 + 0.312642i   
-rand(3,3)
- ans  =
-    0.3616361    0.4826472    0.5015342  
-    0.2922267    0.3321719    0.4368588  
-    0.5664249    0.5935095    0.2693125  
-rand(3,2)
- ans  =
-    0.6325745    0.0437334  
-    0.4051954    0.4818509  
-    0.9184708    0.2639556  
-rand()
- ans  =
-    0.4148104  
-rand('uniform')
-rand('normal')
-rand('seed',5)
-rand('seed',0)
-//
-abs(c)
- ans  =
-    1.    2.    3.    4.  
-    5.    6.    7.    8.  
-abs(a)
- ans  =
-    1.    2.    3.    4.  
-    5.    6.    7.    8.  
-//
-real(c)
- ans  =
-    0.    2.    3.    4.  
-    5.    6.    7.    8.  
-imag(c)
- ans  =
-    1.    0.    0.    0.  
-    0.    0.    0.    0.  
-real(a)
- ans  =
-    1.    2.    3.    4.  
-    5.    6.    7.    8.  
-imag(a)
- ans  =
-    0.    0.    0.    0.  
-    0.    0.    0.    0.  
-//
-round(rand(3,3))
- ans  =
-  - 1.    1.    1.  
-    1.    1.    2.  
-    1.    0.    1.  
-//
-conj(a)
- ans  =
-    1.    2.    3.    4.  
-    5.    6.    7.    8.  
-conj(c)
- ans  =
-  - i      2.    3.    4.  
-    5.     6.    7.    8.  
-//
-size(a)
- ans  =
-    2.    4.  
-[m,n]=size(a)
- n  =
-    4.  
- m  =
-    2.  
-//
-triu(a)
- ans  =
-    1.    2.    3.    4.  
-    0.    6.    7.    8.  
-tril(a)
- ans  =
-    1.    0.    0.    0.  
-    5.    6.    0.    0.  
-triu(a,1)
- ans  =
-    0.    2.    3.    4.  
-    0.    0.    7.    8.  
-triu(a,-1)
- ans  =
-    1.    2.    3.    4.  
-    5.    6.    7.    8.  
-tril(a,1)
- ans  =
-    1.    2.    0.    0.  
-    5.    6.    7.    0.  
-tril(a,-1)
- ans  =
-    0.    0.    0.    0.  
-    5.    0.    0.    0.  
-triu(c)
- ans  =
-    i      2.    3.    4.  
-    0      6.    7.    8.  
-tril(c)
- ans  =
-    i      0     0    0  
-    5.     6.    0    0  
-triu(c,1)
- ans  =
-    0    2.    3.    4.  
-    0    0     7.    8.  
-triu(c,10)
- ans  =
-    0    0    0    0  
-    0    0    0    0  
-triu(c,-1)
- ans  =
-    i      2.    3.    4.  
-    5.     6.    7.    8.  
-triu(c,-10)
- ans  =
-    i      2.    3.    4.  
-    5.     6.    7.    8.  
-tril(c,1)
- ans  =
-    i      2.    0     0  
-    5.     6.    7.    0  
-tril(c,10)
- ans  =
-    i      2.    3.    4.  
-    5.     6.    7.    8.  
-tril(c,-1)
- ans  =
-    0     0    0    0  
-    5.    0    0    0  
-tril(c,-10)
- ans  =
-    0    0    0    0  
-    0    0    0    0  
-//test de matlu
-a=rand(4,4);b=rand(5,4);ac=a+i*rand(4,4);bc=b+i*rand(5,4);
-//
-if abs((1/a)*a-eye())> 10*%eps then bugmes();quit;end
-if abs((i/a)*a-i*eye())> 10*%eps then bugmes();quit;end
-if abs((1/ac)*ac-eye())> 10*%eps then bugmes();quit;end
-if abs((i/ac)*ac-i*eye())> 10*%eps then bugmes();quit;end
-if abs(a*(a\1)-eye())> 10*%eps then bugmes();quit;end
-if abs(a*(a\i)-i*eye())> 10*%eps then bugmes();quit;end
-if abs(ac*(ac\1)-eye())> 10*%eps then bugmes();quit;end
-if abs(ac*(ac\i)-eye()*i)> 10*%eps then bugmes();quit;end
-//
-if abs(inv(a)*a-eye())> 10*%eps then bugmes();quit;end
-if abs(inv(ac)*ac-eye())> 10*%eps then bugmes();quit;end
-//
-if abs((b/a)*a-b)> 10*%eps then bugmes();quit;end
-if abs((b/ac)*ac-b)> 10*%eps then bugmes();quit;end
-if abs((bc/a)*a-bc)> 10*%eps then bugmes();quit;end
-if abs((bc/ac)*ac-bc)> 10*%eps then bugmes();quit;end
-//
-if abs(a*(a\b')-b')> 10*%eps then bugmes();quit;end
-if abs(ac*(ac\b')-b')> 10*%eps then bugmes();quit;end
-if abs(a*(a\bc')-bc')> 10*%eps then bugmes();quit;end
-if abs(ac*(ac\bc')-bc')> 10*%eps then bugmes();quit;end
-//
-[l u]=lu(a);
-if abs(l*u-a)> 10*%eps then bugmes();quit;end
-[l u]=lu(ac);
-if abs(l*u-ac)> 10*%eps then bugmes();quit;end
-//
-h1(5,5)=0;for k=1:5,for l=1:5, h1(k,l)=1/(k+l-1);end;end;
-if abs(inv(h1)-testmatrix('hilb',5))> 1.e-7 then bugmes();quit;end
-//
-if abs(det(testmatrix('magic',5))-5070000)> 1.e-7 then bugmes();quit;end
-//
-b=a*a';h=chol(b);
-if abs(h'*h-b)> 10*%eps then bugmes();quit;end
-bc=triu(ac*ac');bc=bc+bc'-diag(real(diag(bc)));;h=chol(bc);
-if abs(h'*h-bc)> 10*%eps then bugmes();quit;end
-//test de matqr
-a=rand(3,4);b=rand(3,4);ac=a+i*rand(3,4);bc=b+i*rand(3,4);
-//
-if abs(a*(1/a)*a-a)> 10*%eps then bugmes();quit;end
-if abs(a*(i/a)*a-i*a)> 10*%eps then bugmes();quit;end
-if abs(a*(a\ 1)*a-a)> 10*%eps then bugmes();quit;end
-if abs(a*(a\ i)*a-i*a)> 10*%eps then bugmes();quit;end
-if abs(ac*(1/ac)*ac-ac)> 10*%eps then bugmes();quit;end
-if abs(ac*(i/ac)*ac-i*ac)> 10*%eps then bugmes();quit;end
-if abs(ac*(ac\ 1)*ac-ac)> 10*%eps then bugmes();quit;end
-if abs(ac*(ac\ i)*ac-i*ac)> 10*%eps then bugmes();quit;end
-//
-if abs(a/b-a*(1/b))> 10*%eps then bugmes();quit;end
-if abs(ac/b-ac*(1/b))> 10*%eps then bugmes();quit;end
-if abs(a/bc-a*(1/bc))> 10*%eps then bugmes();quit;end
-if abs(ac/bc-ac*(1/bc))> 10*%eps then bugmes();quit;end
-//
-if abs(a\ b -(a\ 1)*b)> 10*%eps then bugmes();quit;end
-if abs(a\ bc-(a\ 1)*bc)> 10*%eps then bugmes();quit;end
-if abs(ac\ b-(ac\ 1)*b)> 10*%eps then bugmes();quit;end
-if abs(ac\ bc-(ac\ 1)*bc)> 10*%eps then bugmes();quit;end
-//
-//elemt-wise
-a=rand(3,2);ai=a+rand(3,2)*%i;
-de=2;
-if norm(ai.*de-ai*de,1) >1000*%eps then bugmes();quit;end
-if norm(de.*ai-de*ai,1) >1000*%eps then bugmes();quit;end
-if norm(ai.*de-ai*de,1) >1000*%eps then bugmes();quit;end
-if norm(de.*ai-de*ai,1) >1000*%eps then bugmes();quit;end
-de=de+3*%i;
-if norm(ai.*de-ai*de,1) >1000*%eps then bugmes();quit;end
-if norm(de.*ai-de*ai,1) >1000*%eps then bugmes();quit;end
-if norm(ai.*de-ai*de,1) >1000*%eps then bugmes();quit;end
-if norm(de.*ai-de*ai,1) >1000*%eps then bugmes();quit;end
-//
-de=2;def=de*ones(a);
-if norm(a./de-a./def,1) >1000*%eps then bugmes();quit;end
-if norm(ai./de-ai./def,1) >1000*%eps then bugmes();quit;end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(a./de-a./def,1) >1000*%eps then bugmes();quit;end
-if norm(ai./de-ai./def,1) >1000*%eps then bugmes();quit;end
-de=2;def=de*ones(a);
-if norm(a.\de-a.\def,1) >1000*%eps then bugmes();quit;end
-if norm(ai.\de-ai.\def,1) >1000*%eps then bugmes();quit;end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(a.\de-a.\def,1) >1000*%eps then bugmes();quit;end
-if norm(ai.\de-ai.\def,1) >1000*%eps then bugmes();quit;end
-///////////
-de=2;def=de*ones(a);
-if norm(de.\a-de.\a,1) >1000*%eps then bugmes();quit;end
-if norm(de.\ai-def.\ai,1) >1000*%eps then bugmes();quit;end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(de.\a-def.\a,1) >1000*%eps then bugmes();quit;end
-if norm(de.\ai-def.\ai,1) >1000*%eps then bugmes();quit;end
-de=2;def=de*ones(a);
-if norm(de./a-def./a,1) >1000*%eps then bugmes();quit;end
-if norm(de./ai-def./ai,1) >1000*%eps then bugmes();quit;end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(de./a-def./a,1) >1000*%eps then bugmes();quit;end
-if norm(de./ai-def./ai,1) >1000*%eps then bugmes();quit;end
-//
-[p,r]=qr(a);
-if abs(p*r-a)> 10*%eps then bugmes();quit;end
-[p,r]=qr(a');
-if abs(p*r-a')> 10*%eps then bugmes();quit;end
-[p,r,x]=qr(a);
-if abs(p*r*x'-a)> 10*%eps then bugmes();quit;end
-[p,r]=qr(ac);
-if abs(p*r-ac)> 10*%eps then bugmes();quit;end
-[p,r,x]=qr(ac);
-if abs(p*r-ac*x)> 10*%eps then bugmes();quit;end
-//
-if abs(cond(diag([1 2 3 4]))-4)> 10*%eps then bugmes();quit;end
-if abs(cond(diag([1 i 3 4]))-4)> 10*%eps then bugmes();quit;end
-v=[1 2 3 4 5];
-if abs(norm(v,1)-15)> 10*%eps then bugmes();quit;end
-if abs(norm(v,'inf')-5)> 10*%eps then bugmes();quit;end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then bugmes();quit;end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then bugmes();quit;end
-v=v';
-if abs(norm(v,1)-15)> 10*%eps then bugmes();quit;end
-if abs(norm(v,'inf')-5)> 10*%eps then bugmes();quit;end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then bugmes();quit;end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then bugmes();quit;end
-v=[i 2 3 4 5];
-if abs(norm(v,'inf')-5)> 10*%eps then bugmes();quit;end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then bugmes();quit;end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then bugmes();quit;end
-v=v';
-if abs(norm(v,1)-15)> 10*%eps then bugmes();quit;end
-if abs(norm(v,'inf')-5)> 10*%eps then bugmes();quit;end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then bugmes();quit;end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then bugmes();quit;end
-a=[diag([1 2 3]);[0 0 0]];
-if abs(norm(a,1)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'inf')-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,2)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then bugmes();quit;end
-a=a';
-if abs(norm(a,1)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'inf')-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,2)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then bugmes();quit;end
-a=[diag([i,2,3]),[0;0;0]];
-if abs(norm(a,'inf')-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,2)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then bugmes();quit;end
-a=a';
-if abs(norm(a,1)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'inf')-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,2)-3)> 10*%eps then bugmes();quit;end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then bugmes();quit;end
-//
-a=rand(3,5);ac=a+i*rand(3,5);
-[u,s,v]=svd(a);u*s*v'-a;
-if abs(svd(a)-diag(s))> 10*%eps then bugmes();quit;end
-[u,s,v]=svd(ac);u*s*v'-ac;
-if abs(svd(ac)-diag(s))> 10*%eps then bugmes();quit;end
-//
-[u,s,v]=svd(a,0);u*s*v'-a;
-if abs(svd(a,0)-diag(s,0))> 10*%eps then bugmes();quit;end
-[u,s,v]=svd(ac,0);u*s*v'-ac;
-if abs(svd(ac,0)-diag(s))> 10*%eps then bugmes();quit;end
-a=a';ac=ac';
-a=rand(3,5);ac=a+i*rand(3,5);
-[u,s,v]=svd(a);u*s*v'-a;
-if abs(svd(a)-diag(s))> 10*%eps then bugmes();quit;end
-[u,s,v]=svd(ac);u*s*v'-ac;
-if abs(svd(ac)-diag(s))> 10*%eps then bugmes();quit;end
-//
-[u,s,v]=svd(a,0);u*s*v'-a;
-if abs(svd(a,0)-diag(s,0))> 10*%eps then bugmes();quit;end
-[u,s,v]=svd(ac,0);u*s*v'-ac;
-if abs(svd(ac,0)-diag(s))> 10*%eps then bugmes();quit;end
-//
-if abs(a*pinv(a)*a-a)> 10*%eps then bugmes();quit;end
-if abs(ac*pinv(ac)*ac -ac)> 10*%eps then bugmes();quit;end
-a=a';ac=ac';
-if abs(a*pinv(a)*a-a)> 10*%eps then bugmes();quit;end
-if abs(ac*pinv(ac)*ac-ac)> 10*%eps then bugmes();quit;end
-//
-if abs(rank(a)-3)> 10*%eps then bugmes();quit;end
-if abs(rank(ac)-3)> 10*%eps then bugmes();quit;end
-rand('seed',0)
-// matdsr  matdsc
-a=rand(4,4);ac=a+i*rand(4,4);t=a*a';tc=ac*ac';
-tc=triu(tc,1)+triu(tc,1)'+diag(real(diag(tc)));
-tc=tc/max(abs(spec(tc))+1);
-// fonctions matricielles
-s=sqrtm(t);
-if norm(t-s*s,1) > 500*%eps then bugmes();quit;end
-s=logm(t);
-if norm(t-expm(s)) > 500*%eps then bugmes();quit;end
-s=sqrtm(tc);
-if norm(tc-s*s,1) > 500*%eps then bugmes();quit;end
-s=expm(tc);s=triu(s,1)+triu(s,1)'+diag(real(diag(s)));
-if norm(logm(s)-tc,1)> 500*%eps then bugmes();quit;end
-if norm(sinm(t)**2+cosm(t)**2-eye(),1) > 50*%eps then bugmes();quit;end
-if norm(sinm(tc)**2+cosm(tc)**2-eye(),1) > 50*%eps then bugmes();quit;end
-//poly et root
-p=rand(5,1);pc=p+i*rand(5,1);x=poly(0,'x');
-if norm(gsort(p )-gsort(real(roots(poly(p,'x'))))) > 1000*%eps then bugmes();quit;end
-if norm(gsort(imag(pc))-gsort(real(roots(poly(imag(pc),'x'))))) > 10000*%eps then bugmes();quit;end
-//**
-if norm(t^(-1)-inv(t),1) > 200*%eps then bugmes();quit;end
-if norm(tc**(-1)-inv(tc),1) > 200*%eps then bugmes();quit;end
-x=rand()+i*rand();
-if norm((t**x)*(t^(-x))-eye(),1) > 200*%eps then bugmes();quit;end
-if norm((tc**x)*(tc**(-x))-eye(),1) > 200*%eps then bugmes();quit;end
-//element op
-if norm(sin([0 pi/2 pi 3*pi/2])-[0 1 0 -1],1) > 10*%eps then bugmes();quit;end
-if norm(cos([0 pi/2 pi 3*pi/2])-[1 0 -1 0],1) > 10*%eps then bugmes();quit;end
-if norm(log([e 1/e e**2])-[1 -1 2],1) > 10*%eps then bugmes();quit;end
-if norm(exp([1 -1 2])-[e 1/e e**2],1) > 10*%eps then bugmes();quit;end
-if norm(sqrt([1 -1 4])-[1 i 2],1) > 10*%eps then bugmes();quit;end
-if norm(sin(x)-(exp(i*x)-exp(-i*x))/(2*i),1) > 10*%eps then bugmes();quit;end
-if norm(cos(x)-(exp(i*x)+exp(-i*x))/2,1) > 10*%eps then bugmes();quit;end
-if norm(sqrt(x)^2-x,1) > 10*%eps then bugmes();quit;end
-if norm(log(exp(x))-x,1) > 10*%eps then bugmes();quit;end
-// triu
-z=poly(0,'z');a=[z 1 -z+1  8;z*z 10*z 5 -z;3 7 z+1 -1-z];
-[m,n]=size(a);mn=min([m n]);a1=a;l=1;
-//
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//
-a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//
-a=a+%i*[1 2 3 4;5 6 7 8;9 10 11 12]';
-[m,n]=size(a);mn=min([m n]);a1=a;l=1;
-//
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//
-a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,bugmes();quit;end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//test de clear
-x=[1,2,3];
-clear x,if exists('x')==1 then bugmes();quit;end
-x=[1,2,3];y='afs';
-clear x y,if exists('x')==1| exists('y')==1 then bugmes();quit;end
-X=[1,2,3];Y='afs';
-clear X Y,if exists('X')==1| exists('Y')==1 then bugmes();quit;end
-//test with scalar vector and matrices
-// REAL VECTORS
-x1=1:3;
-x0=0:2;
-if or(x1^2<>[1 4 9]) then bugmes();quit;end
-if or(x0^2<>[0 1 4]) then bugmes();quit;end
-if or(x1^0<>[1 1 1]) then bugmes();quit;end
-if norm(x1^(2*(1+%eps))-x1^2)>100*%eps then bugmes();quit;end
-if norm(x0^(2*(1+%eps))-x0^2)>100*%eps then bugmes();quit;end
-if norm(x1^(-2)-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-if norm(x1^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-// COMPLEX CASE
-p=2+%eps*%i;
-if norm(x1^p-x1^2)>100*%eps then bugmes();quit;end
-if norm(x0^p-x0^2)>100*%eps then bugmes();quit;end
-if norm(x1^(-p)-x1^(-2))>100*%eps then bugmes();quit;end
-y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
-if norm(x1^2-[1 4 9])>100*%eps then bugmes();quit;end
-if norm(x0^2-[0 1 4])>100*%eps then bugmes();quit;end
-x1^2.000000001;x0^2.000000001;
-if norm(x1^2-[1 4 9])>100*%eps then bugmes();quit;end
-if norm(x0^2-[0 1 4])>100*%eps then bugmes();quit;end
-if norm(x1^(-2)-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-if norm(x1^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-if norm(x1^p-x1^2)>100*%eps then bugmes();quit;end
-if norm(x0^p-x0^2)>100*%eps then bugmes();quit;end
-if norm(x1^(-p)-x1^(-2))>100*%eps then bugmes();quit;end
-//0.^ TEST WITH  REAL VECTORS
-x1=1:3;
-x0=0:2;
-if or(x1.^2<>[1 4 9]) then bugmes();quit;end
-if or(x0.^2<>[0 1 4]) then bugmes();quit;end
-if or(x1.^0<>[1 1 1]) then bugmes();quit;end
-if norm(x1.^(2*(1+%eps))-x1.^2)>100*%eps then bugmes();quit;end
-if norm(x0.^(2*(1+%eps))-x0.^2)>100*%eps then bugmes();quit;end
-if norm(x1.^(-2)-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-if norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-//0.^ TEST WITH  COMPLEX VECTORS
-p=2+%eps*%i;
-if norm(x1.^p-x1.^2)>100*%eps then bugmes();quit;end
-if norm(x0.^p-x0.^2)>100*%eps then bugmes();quit;end
-if norm(x1.^(-p)-x1.^(-2))>100*%eps then bugmes();quit;end
-y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
-if norm(x1.^2-[1 4 9])>100*%eps then bugmes();quit;end
-if norm(x0.^2-[0 1 4])>100*%eps then bugmes();quit;end
-x1.^2.000000001;x0.^2.000000001;
-if norm(x1.^2-[1 4 9])>100*%eps then bugmes();quit;end
-if norm(x0.^2-[0 1 4])>100*%eps then bugmes();quit;end
-if norm(x1.^(-2)-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-if norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then bugmes();quit;end
-if norm(x1.^p-x1.^2)>100*%eps then bugmes();quit;end
-if norm(x0.^p-x0.^2)>100*%eps then bugmes();quit;end
-if norm(x1.^(-p)-x1.^(-2))>100*%eps then bugmes();quit;end
-//
-// EMPTY MATRIX
-//=============
-if []^1 <> [] then bugmes();quit;end
-if []^[1 2 3] <> [] then bugmes();quit;end
-if [1 2 3]^[] <> [] then bugmes();quit;end
-if []^[] <> [] then bugmes();quit;end
-// SQUARE MATRIX
-//==============
-x1=[1 2;3 4];
-if or(x1^1<>x1) then bugmes();quit;end
-if or(x1^(-1)<>inv(x1)) then bugmes();quit;end
-if or(x1^2<>x1*x1) then bugmes();quit;end
-if or(x1^(-2)<>inv(x1)^2) then bugmes();quit;end
-x1(1,1)=x1(1,1)+%i;
-if or(x1^2<>x1*x1) then bugmes();quit;end
-if or(x1^(-2)<>inv(x1)^2) then bugmes();quit;end
-if or(x1^1<>x1) then bugmes();quit;end
-if or(x1^(-1)<>inv(x1)) then bugmes();quit;end
-if or(rand(4,4)^0<>eye(4,4)) then bugmes();quit;end
-x1=[1 2;2 3];x2=x1^(1/2);
-if norm(x2^(2)-x1)>100*%eps then bugmes();quit;end
-x2=x1^(-1/2);
-if norm(x2^(-2)-x1)>100*%eps then bugmes();quit;end
-x1=[1 2+%i;2-%i 3];
-x2=x1^(1/2);
-if norm(x2^(2)-x1)>100*%eps then bugmes();quit;end
-x2=x1^(-1/2);
-if norm(x2^(-2)-x1)>100*%eps then bugmes();quit;end
-//TEST WITH POLYNOMIAL VECTOR AND MATRICES
-//---------------------------------------
-s=poly(0,'s');
-if or(coeff(s^3+1)<>[1 0 0 1]) then bugmes();quit;end
-x1=[1 s+1 s^3+1];
-if or(x1^2<>[1 1+2*s+s^2  1+2*s^3+s^6]) then bugmes();quit;end
-if or(coeff(x1^0)<>[1 1 1]) then bugmes();quit;end
-if or(x1^3<>[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]) then bugmes();quit;end
-if or((x1^(-1)-[1 1/(1+s)  1/(1+s^3)])<>0) then bugmes();quit;end
-x1=[1 s+1 s.^3+1];
-if or(x1.^2<>[1 1+2*s+s.^2  1+2*s.^3+s.^6]) then bugmes();quit;end
-if or(coeff(x1.^0)<>[1 1 1]) then bugmes();quit;end
-if or(x1.^3<>[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]) then bugmes();quit;end
-if or((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)])<>0) then bugmes();quit;end
-x1=[s+1 2*s;3+4*s^2 4];
-if or(x1^1<>x1) then bugmes();quit;end
-if or(x1^(-1)<>inv(x1)) then bugmes();quit;end
-if or(x1^2<>x1*x1) then bugmes();quit;end
-if or(x1^(-2)<>inv(x1)^2) then bugmes();quit;end
-x1(1,1)=x1(1,1)+%i;
-if or(x1^2<>x1*x1) then bugmes();quit;end
-//if or(x1^(-2)<>inv(x1)^2) then bugmes();quit;end  //simp complexe non implemented
-if or(x1^1<>x1) then bugmes();quit;end
-//if or(x1^(-1)<>inv(x1)) then bugmes();quit;end //simp complexe non implemented
-//simple ops
-if 1==0 then bugmes();quit;end
-if 1<0 then bugmes();quit;end
-if 1<=0 then bugmes();quit;end
-if 1==1 then,else bugmes();quit;end
-if ~(1==1) then bugmes();quit;end
-if 0>1 then bugmes();quit;end
-if 0>=1 then bugmes();quit;end
-if 1<>1 then bugmes();quit;end
-if 0<>1 then,else bugmes();quit;end
-if '1'=='0' then bugmes();quit;end
-if '1'<>'1' then bugmes();quit;end
-%s=poly(0,'s');
-if %s==0 then bugmes();quit;end
-if 0==%s then bugmes();quit;end
-if %s==%s then,else bugmes();quit;end
-if %s<>%s then bugmes();quit;end
-if %s==%s+1 then bugmes();quit;end
-if %s+1==%s then bugmes();quit;end
-if 1/%s==0 then bugmes();quit;end
-if 0==1/%s then bugmes();quit;end
-if 1/%s==1/%s then,else bugmes();quit;end
-if 1/%s<>1/%s then bugmes();quit;end
-if 1/%s==1/%s+1 then bugmes();quit;end
-if 1/%s+1==1/%s then bugmes();quit;end
-if 1/%s<>1/%s+1 then , else  bugmes();quit;end
-if 1/%s+1<>1/%s then , else  bugmes();quit;end
-l=list(1,[1 23],'adssa')
- l  =
-       l(1)
-    1.  
-       l(2)
-    1.    23.  
-       l(3)
- adssa   
-l1=list(123,'sdwqqwq')
- l1  =
-       l1(1)
-    123.  
-       l1(2)
- sdwqqwq   
-if l==0 then bugmes();quit;end
-if 0==l then bugmes();quit;end
-if l==l then,else bugmes();quit;end
-if l<>l then bugmes();quit;end
-if l==l1 then bugmes();quit;end
-if l1==l then bugmes();quit;end
-if l<>l1 then , else bugmes();quit;end
-if l1<>l then , else bugmes();quit;end
-if %t&1==2 then bugmes();quit;end
-if %t|1==2 then, else bugmes();quit;end
-if %t&-1==2 then bugmes();quit;end
-if %t|-1==2 then, else bugmes();quit;end
-if 1<2&1==2 then bugmes();quit;end
-if 1<2|1==2 then, else bugmes();quit;end
-if 1<2&-1==2 then bugmes();quit;end
-if 1<2|-1==2 then, else bugmes();quit;end
-if 2>1&1==2 then bugmes();quit;end
-if 2>1|1==2 then, else bugmes();quit;end
-if 2>1&-1==2 then bugmes();quit;end
-if 2>1|-1==2 then, else bugmes();quit;end
-if 1==1&1==2 then bugmes();quit;end
-if 1==1|1==2 then, else bugmes();quit;end
-if 1==1&-1==2 then bugmes();quit;end
-if 1==1|-1==2 then, else bugmes();quit;end
-if 1<>2&1==2 then bugmes();quit;end
-if 1<>2|1==2 then, else bugmes();quit;end
-if 1<>2&-1==2 then bugmes();quit;end
-if 1<>2|-1==2 then, else bugmes();quit;end
-if %t&1>2 then bugmes();quit;end
-if %t|1>2 then, else bugmes();quit;end
-if %t&-1>2 then bugmes();quit;end
-if %t|-1>2 then, else bugmes();quit;end
-if 1<2&1>2 then bugmes();quit;end
-if 1<2|1>2 then, else bugmes();quit;end
-if 1<2&-1>2 then bugmes();quit;end
-if 1<2|-1>2 then, else bugmes();quit;end
-if 2>1&1>2 then bugmes();quit;end
-if 2>1|1>2 then, else bugmes();quit;end
-if 2>1&-1>2 then bugmes();quit;end
-if 2>1|-1>2 then, else bugmes();quit;end
-if 1==1&1>2 then bugmes();quit;end
-if 1==1|1>2 then, else bugmes();quit;end
-if 1==1&-1>2 then bugmes();quit;end
-if 1==1|-1>2 then, else bugmes();quit;end
-if 1<>2&1>2 then bugmes();quit;end
-if 1<>2|1>2 then, else bugmes();quit;end
-if 1<>2&-1>2 then bugmes();quit;end
-if 1<>2|-1>2 then, else bugmes();quit;end
diff --git a/scilab/modules/core/tests/unit_tests/scilab.tst b/scilab/modules/core/tests/unit_tests/scilab.tst
deleted file mode 100644 (file)
index 2e85661..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-
-pi=%pi
-i=%i
-e=%e
-//       tests
-//
-1
-a=1
-b=[1 2 3]
-c=[1 2 3;4 5 6]
-d=[1 2 3;4 5 6]'
-d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15]
-d=[1 2;3 4]
-e1=[[1 2] [3 4];[5 6 7 8];[9;10;11;12]']
-f([1 3 5],[1 2 3])=[-1 -2 -3;-4 -5 -6;-7 -8 -9]
-g=[i,2,3;1 i 3;1 2 i]
-h=[i 1 2 i 3]
-o=[1 i i 2 3]'
-b(2)=3
-e1(1,3)=1
-p='apcdefghijklmnopqrstuvwxyz0123456789'
-// test de stackg
-a,b,c,d,e1,f,g,h,o,p
-b(2)
-e1(1,3)
-e1([1 2],[3 4])
-e1(1:2,:)
-e1(:,4)
-e1(:,:)
-g(1,1)
-g(:,1)
-g(1:2,:)
-g(:,:)
-o'
-//test de stack2
-//
-// additions...
-[1 2 3;4 5 6]-[1 2 3;4 5 6]
-[1 2 3;4 5 6]+2*[1 2 3;4 5 6]-[1 2 3;4 5 6]*3
-[1 i 3;4 5 i]+2*[1 i 3;4 5 i]-[1 i 3;4 5 i]*3
-[2*i -4*i 2*i]+2*[i -2*i i]+i*[2 -4 2]-[i -2*i i]*2 -2*[2 -4 2]*i
-//
-2\[4 8 16]/2-[1 2 4]
-i\[2*i 2 i*4]/i-[-i*2 -2 -4*i]
-// element wise operations
-[1 2;3 4;5 6].*[1 2;3 4;5 6]-[1 4;9 16;25 36]
-[1 2;3 4;5 6*i].*[1 2;3 4;5 6]-[1 4;9 16;25 36*i]
-[1 2;3 4;5 6].*[1 2;3 4;5 6*i]-[1 4;9 16;25 36*i]
-[1 2;3 4;5 6*i].*[1 2;3 4;5 6*i]-[1 4;9 16;25 -36]
-//
-[2 9 8;3 10 15]./[2 3 4;3 5 5]-[1 3 2;1 2 3]
-[2 9*i 8;3 10 15]./[2 3 4;3 5 5]-[1 3*i 2;1 2 3]
-[2 9 8;3 10 15]./[2*i 3 4;3 5 5]-[-i 3 2;1 2 3]
-[2*i 9 8;3 10 15]./[2*i 3 4;3 5 5]-[1 3 2;1 2 3]
-//
-[2 3 4;3 5 5].\[2 9 8;3 10 15]-[1 3 2;1 2 3]
-[2 i 4;3 5 5].\[2 9 8;3 10 15]-[1 -9*i 2 ;1 2 3]
-[2 3 4;3 5 5].\[i 9 8;3 10 15]-[.5*i 3 2;1 2 3]
-[i 3 4;3 5 5].\[i 9 8;3 10 15]-[1 3 2;1 2 3]
-//multiplication
-[1 2 3;4 5 6]*[3;2;1]-[10;28]
-[1 i 3;4 5 6]*[3;2;1]-[6+2*i;28]
-[1 2 3;4 5 6]*[i;2;1]-[i+7;4*i+16]
-[1 i 3;2*i,-i,1]*[i;-i;i]-[4*i+1;-3+i]
-//eye
-eye(4,4)
-//a+-b*eye a*eye+-b a+-eye*b eye*a+-b
--2*eye()+[1 2;3 4]+eye()*2-[1 2;3 4]
--2*i*eye()+[1 2;3 4]+eye()*2*i-[1 2;3 4]
-// :
-1:10
-1:.1:2
-// for
-for k=1:3,for l=1:2,a(k,l)=k+l;end;end;a
-diag([1 2 3])-[1 0 0;0 2 0;0 0 3]
-diag([1 i 2])-[1 0 0;0 i 0;0 0 2]
-a=[1 2 3 4;5 6 7 8];
-c=a;
-c(1,1)=i;
-diag(a)-[1;6]
-diag(a,1)-[2;7]
-diag(a,-1)-[5]
-diag(a,4)
-diag(c)-[i;6]
-diag(c,1)-[2;7]
-diag(c,-1)-[5]
-diag(c,4)
-//
-eye(a)
-eye(c)
-eye(3,3)
-eye(2,3)
-//
-ones(a)
-ones(c)
-ones(3,3)
-ones(3,2)
-//
-rand(a)
-rand(c)
-rand(3,3)
-rand(3,2)
-rand()
-rand('uniform')
-rand('normal')
-rand('seed',5)
-rand('seed',0)
-//
-abs(c)
-abs(a)
-//
-real(c)
-imag(c)
-real(a)
-imag(a)
-//
-round(rand(3,3))
-//
-conj(a)
-conj(c)
-//
-size(a)
-[m,n]=size(a)
-//
-triu(a)
-tril(a)
-triu(a,1)
-triu(a,-1)
-tril(a,1)
-tril(a,-1)
-triu(c)
-tril(c)
-triu(c,1)
-triu(c,10)
-triu(c,-1)
-triu(c,-10)
-tril(c,1)
-tril(c,10)
-tril(c,-1)
-tril(c,-10)
-//test de matlu
-a=rand(4,4);b=rand(5,4);ac=a+i*rand(4,4);bc=b+i*rand(5,4);
-//
-if abs((1/a)*a-eye())> 10*%eps then pause,end
-if abs((i/a)*a-i*eye())> 10*%eps then pause,end
-if abs((1/ac)*ac-eye())> 10*%eps then pause,end
-if abs((i/ac)*ac-i*eye())> 10*%eps then pause,end
-if abs(a*(a\1)-eye())> 10*%eps then pause,end
-if abs(a*(a\i)-i*eye())> 10*%eps then pause,end
-if abs(ac*(ac\1)-eye())> 10*%eps then pause,end
-if abs(ac*(ac\i)-eye()*i)> 10*%eps then pause,end
-//
-if abs(inv(a)*a-eye())> 10*%eps then pause,end
-if abs(inv(ac)*ac-eye())> 10*%eps then pause,end
-//
-if abs((b/a)*a-b)> 10*%eps then pause,end
-if abs((b/ac)*ac-b)> 10*%eps then pause,end
-if abs((bc/a)*a-bc)> 10*%eps then pause,end
-if abs((bc/ac)*ac-bc)> 10*%eps then pause,end
-//
-if abs(a*(a\b')-b')> 10*%eps then pause,end
-if abs(ac*(ac\b')-b')> 10*%eps then pause,end
-if abs(a*(a\bc')-bc')> 10*%eps then pause,end
-if abs(ac*(ac\bc')-bc')> 10*%eps then pause,end
-//
-[l u]=lu(a);
-if abs(l*u-a)> 10*%eps then pause,end
-[l u]=lu(ac);
-if abs(l*u-ac)> 10*%eps then pause,end
-//
-h1(5,5)=0;for k=1:5,for l=1:5, h1(k,l)=1/(k+l-1);end;end;
-if abs(inv(h1)-testmatrix('hilb',5))> 1.e-7 then pause,end
-//
-if abs(det(testmatrix('magic',5))-5070000)> 1.e-7 then pause,end
-//
-b=a*a';h=chol(b);
-if abs(h'*h-b)> 10*%eps then pause,end
-bc=triu(ac*ac');bc=bc+bc'-diag(real(diag(bc)));;h=chol(bc);
-if abs(h'*h-bc)> 10*%eps then pause,end
-//test de matqr
-a=rand(3,4);b=rand(3,4);ac=a+i*rand(3,4);bc=b+i*rand(3,4);
-//
-if abs(a*(1/a)*a-a)> 10*%eps then pause,end
-if abs(a*(i/a)*a-i*a)> 10*%eps then pause,end
-if abs(a*(a\ 1)*a-a)> 10*%eps then pause,end
-if abs(a*(a\ i)*a-i*a)> 10*%eps then pause,end
-if abs(ac*(1/ac)*ac-ac)> 10*%eps then pause,end
-if abs(ac*(i/ac)*ac-i*ac)> 10*%eps then pause,end
-if abs(ac*(ac\ 1)*ac-ac)> 10*%eps then pause,end
-if abs(ac*(ac\ i)*ac-i*ac)> 10*%eps then pause,end
-//
-if abs(a/b-a*(1/b))> 10*%eps then pause,end
-if abs(ac/b-ac*(1/b))> 10*%eps then pause,end
-if abs(a/bc-a*(1/bc))> 10*%eps then pause,end
-if abs(ac/bc-ac*(1/bc))> 10*%eps then pause,end
-//
-if abs(a\ b -(a\ 1)*b)> 10*%eps then pause,end
-if abs(a\ bc-(a\ 1)*bc)> 10*%eps then pause,end
-if abs(ac\ b-(ac\ 1)*b)> 10*%eps then pause,end
-if abs(ac\ bc-(ac\ 1)*bc)> 10*%eps then pause,end
-//
-//elemt-wise
-a=rand(3,2);ai=a+rand(3,2)*%i;
-de=2;
-if norm(ai.*de-ai*de,1) >1000*%eps then pause,end
-if norm(de.*ai-de*ai,1) >1000*%eps then pause,end
-if norm(ai.*de-ai*de,1) >1000*%eps then pause,end
-if norm(de.*ai-de*ai,1) >1000*%eps then pause,end
-de=de+3*%i;
-if norm(ai.*de-ai*de,1) >1000*%eps then pause,end
-if norm(de.*ai-de*ai,1) >1000*%eps then pause,end
-if norm(ai.*de-ai*de,1) >1000*%eps then pause,end
-if norm(de.*ai-de*ai,1) >1000*%eps then pause,end
-//
-de=2;def=de*ones(a);
-if norm(a./de-a./def,1) >1000*%eps then pause,end
-if norm(ai./de-ai./def,1) >1000*%eps then pause,end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(a./de-a./def,1) >1000*%eps then pause,end
-if norm(ai./de-ai./def,1) >1000*%eps then pause,end
-de=2;def=de*ones(a);
-if norm(a.\de-a.\def,1) >1000*%eps then pause,end
-if norm(ai.\de-ai.\def,1) >1000*%eps then pause,end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(a.\de-a.\def,1) >1000*%eps then pause,end
-if norm(ai.\de-ai.\def,1) >1000*%eps then pause,end
-
-///////////
-de=2;def=de*ones(a);
-if norm(de.\a-de.\a,1) >1000*%eps then pause,end
-if norm(de.\ai-def.\ai,1) >1000*%eps then pause,end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(de.\a-def.\a,1) >1000*%eps then pause,end
-if norm(de.\ai-def.\ai,1) >1000*%eps then pause,end
-de=2;def=de*ones(a);
-if norm(de./a-def./a,1) >1000*%eps then pause,end
-if norm(de./ai-def./ai,1) >1000*%eps then pause,end
-//
-de=2+3*%i;def=de*ones(a);
-if norm(de./a-def./a,1) >1000*%eps then pause,end
-if norm(de./ai-def./ai,1) >1000*%eps then pause,end
-//
-[p,r]=qr(a);
-if abs(p*r-a)> 10*%eps then pause,end
-[p,r]=qr(a');
-if abs(p*r-a')> 10*%eps then pause,end
-[p,r,x]=qr(a);
-if abs(p*r*x'-a)> 10*%eps then pause,end
-[p,r]=qr(ac);
-if abs(p*r-ac)> 10*%eps then pause,end
-[p,r,x]=qr(ac);
-if abs(p*r-ac*x)> 10*%eps then pause,end
-//
-if abs(cond(diag([1 2 3 4]))-4)> 10*%eps then pause,end
-if abs(cond(diag([1 i 3 4]))-4)> 10*%eps then pause,end
-v=[1 2 3 4 5];
-if abs(norm(v,1)-15)> 10*%eps then pause,end
-if abs(norm(v,'inf')-5)> 10*%eps then pause,end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then pause,end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then pause,end
-v=v';
-if abs(norm(v,1)-15)> 10*%eps then pause,end
-if abs(norm(v,'inf')-5)> 10*%eps then pause,end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then pause,end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then pause,end
-v=[i 2 3 4 5];
-if abs(norm(v,'inf')-5)> 10*%eps then pause,end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then pause,end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then pause,end
-v=v';
-if abs(norm(v,1)-15)> 10*%eps then pause,end
-if abs(norm(v,'inf')-5)> 10*%eps then pause,end
-if abs(norm(v,2)-sqrt(55))> 10*%eps then pause,end
-if abs(norm(v,'fro')-sqrt(55))> 10*%eps then pause,end
-a=[diag([1 2 3]);[0 0 0]];
-if abs(norm(a,1)-3)> 10*%eps then pause,end
-if abs(norm(a,'inf')-3)> 10*%eps then pause,end
-if abs(norm(a,2)-3)> 10*%eps then pause,end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then pause,end
-a=a';
-if abs(norm(a,1)-3)> 10*%eps then pause,end
-if abs(norm(a,'inf')-3)> 10*%eps then pause,end
-if abs(norm(a,2)-3)> 10*%eps then pause,end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then pause,end
-a=[diag([i,2,3]),[0;0;0]];
-if abs(norm(a,'inf')-3)> 10*%eps then pause,end
-if abs(norm(a,2)-3)> 10*%eps then pause,end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then pause,end
-a=a';
-if abs(norm(a,1)-3)> 10*%eps then pause,end
-if abs(norm(a,'inf')-3)> 10*%eps then pause,end
-if abs(norm(a,2)-3)> 10*%eps then pause,end
-if abs(norm(a,'fro')-sqrt(14))> 10*%eps then pause,end
-//
-a=rand(3,5);ac=a+i*rand(3,5);
-[u,s,v]=svd(a);u*s*v'-a;
-if abs(svd(a)-diag(s))> 10*%eps then pause,end
-[u,s,v]=svd(ac);u*s*v'-ac;
-if abs(svd(ac)-diag(s))> 10*%eps then pause,end
-//
-[u,s,v]=svd(a,0);u*s*v'-a;
-if abs(svd(a,0)-diag(s,0))> 10*%eps then pause,end
-[u,s,v]=svd(ac,0);u*s*v'-ac;
-if abs(svd(ac,0)-diag(s))> 10*%eps then pause,end
-a=a';ac=ac';
-a=rand(3,5);ac=a+i*rand(3,5);
-[u,s,v]=svd(a);u*s*v'-a;
-if abs(svd(a)-diag(s))> 10*%eps then pause,end
-[u,s,v]=svd(ac);u*s*v'-ac;
-if abs(svd(ac)-diag(s))> 10*%eps then pause,end
-//
-[u,s,v]=svd(a,0);u*s*v'-a;
-if abs(svd(a,0)-diag(s,0))> 10*%eps then pause,end
-[u,s,v]=svd(ac,0);u*s*v'-ac;
-if abs(svd(ac,0)-diag(s))> 10*%eps then pause,end
-//
-if abs(a*pinv(a)*a-a)> 10*%eps then pause,end
-if abs(ac*pinv(ac)*ac -ac)> 10*%eps then pause,end
-a=a';ac=ac';
-if abs(a*pinv(a)*a-a)> 10*%eps then pause,end
-if abs(ac*pinv(ac)*ac-ac)> 10*%eps then pause,end
-//
-if abs(rank(a)-3)> 10*%eps then pause,end
-if abs(rank(ac)-3)> 10*%eps then pause,end
-rand('seed',0)
-// matdsr  matdsc
-a=rand(4,4);ac=a+i*rand(4,4);t=a*a';tc=ac*ac';
-tc=triu(tc,1)+triu(tc,1)'+diag(real(diag(tc)));
-tc=tc/max(abs(spec(tc))+1);
-
-// fonctions matricielles
-s=sqrtm(t);
-if norm(t-s*s,1) > 500*%eps then pause,end
-s=logm(t);
-if norm(t-expm(s)) > 500*%eps then pause,end
-s=sqrtm(tc);
-if norm(tc-s*s,1) > 500*%eps then pause,end
-s=expm(tc);s=triu(s,1)+triu(s,1)'+diag(real(diag(s)));
-if norm(logm(s)-tc,1)> 500*%eps then pause,end
-if norm(sinm(t)**2+cosm(t)**2-eye(),1) > 50*%eps then pause,end
-if norm(sinm(tc)**2+cosm(tc)**2-eye(),1) > 50*%eps then pause,end
-//poly et root
-p=rand(5,1);pc=p+i*rand(5,1);x=poly(0,'x');
-if norm(gsort(p )-gsort(real(roots(poly(p,'x'))))) > 1000*%eps then pause,end
-if norm(gsort(imag(pc))-gsort(real(roots(poly(imag(pc),'x'))))) > 10000*%eps then pause,end
-//**
-if norm(t^(-1)-inv(t),1) > 200*%eps then pause,end
-if norm(tc**(-1)-inv(tc),1) > 200*%eps then pause,end 
-x=rand()+i*rand();
-if norm((t**x)*(t^(-x))-eye(),1) > 200*%eps then pause,end 
-if norm((tc**x)*(tc**(-x))-eye(),1) > 200*%eps then pause,end
-//element op
-if norm(sin([0 pi/2 pi 3*pi/2])-[0 1 0 -1],1) > 10*%eps then pause,end
-if norm(cos([0 pi/2 pi 3*pi/2])-[1 0 -1 0],1) > 10*%eps then pause,end
-if norm(log([e 1/e e**2])-[1 -1 2],1) > 10*%eps then pause,end
-if norm(exp([1 -1 2])-[e 1/e e**2],1) > 10*%eps then pause,end
-if norm(sqrt([1 -1 4])-[1 i 2],1) > 10*%eps then pause,end
-if norm(sin(x)-(exp(i*x)-exp(-i*x))/(2*i),1) > 10*%eps then pause,end
-if norm(cos(x)-(exp(i*x)+exp(-i*x))/2,1) > 10*%eps then pause,end
-if norm(sqrt(x)^2-x,1) > 10*%eps then pause,end
-if norm(log(exp(x))-x,1) > 10*%eps then pause,end
-// triu
-z=poly(0,'z');a=[z 1 -z+1  8;z*z 10*z 5 -z;3 7 z+1 -1-z];
-[m,n]=size(a);mn=min([m n]);a1=a;l=1;
-//
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//
-a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//
-a=a+%i*[1 2 3 4;5 6 7 8;9 10 11 12]';
-[m,n]=size(a);mn=min([m n]);a1=a;l=1;
-//
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-//
-a=a';a1=a;[m,n]=size(a);mn=min([m,n]);l=1;
-for dg=-(m-1):0,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   for k=1:l,a1(-dg+k,k)=0;end,l=min([l+1,mn]);end
-for dg=1:n,
-   if norm(coeff(triu(a,dg)-a1),1)>%eps then dg,pause,end,
-   if dg>(n-m),l=l-1;end;for k=1:l,a1(k,dg+k)=0;end;end;
-
-//test de clear
-x=[1,2,3];
-clear x,if exists('x')==1 then pause,end
-x=[1,2,3];y='afs';
-clear x y,if exists('x')==1| exists('y')==1 then pause,end
-X=[1,2,3];Y='afs';
-clear X Y,if exists('X')==1| exists('Y')==1 then pause,end
-
-
-//test with scalar vector and matrices
-
-// REAL VECTORS
-x1=1:3;
-x0=0:2;
-if or(x1^2<>[1 4 9]) then pause,end
-if or(x0^2<>[0 1 4]) then pause,end
-if or(x1^0<>[1 1 1]) then pause,end
-
-if norm(x1^(2*(1+%eps))-x1^2)>100*%eps then pause,end
-if norm(x0^(2*(1+%eps))-x0^2)>100*%eps then pause,end
-
-if norm(x1^(-2)-[1 0.25 1/9])>100*%eps then pause,end
-if norm(x1^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then pause,end
-
-// COMPLEX CASE
-p=2+%eps*%i;
-if norm(x1^p-x1^2)>100*%eps then pause,end
-if norm(x0^p-x0^2)>100*%eps then pause,end
-if norm(x1^(-p)-x1^(-2))>100*%eps then pause,end
-
-y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
-if norm(x1^2-[1 4 9])>100*%eps then pause,end
-if norm(x0^2-[0 1 4])>100*%eps then pause,end
-
-x1^2.000000001;x0^2.000000001;
-if norm(x1^2-[1 4 9])>100*%eps then pause,end
-if norm(x0^2-[0 1 4])>100*%eps then pause,end
-
-if norm(x1^(-2)-[1 0.25 1/9])>100*%eps then pause,end
-if norm(x1^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then pause,end
-if norm(x1^p-x1^2)>100*%eps then pause,end
-if norm(x0^p-x0^2)>100*%eps then pause,end
-if norm(x1^(-p)-x1^(-2))>100*%eps then pause,end
-
-// .^ TEST WITH  REAL VECTORS
-
-x1=1:3;
-x0=0:2;
-if or(x1.^2<>[1 4 9]) then pause,end
-if or(x0.^2<>[0 1 4]) then pause,end
-if or(x1.^0<>[1 1 1]) then pause,end
-
-if norm(x1.^(2*(1+%eps))-x1.^2)>100*%eps then pause,end
-if norm(x0.^(2*(1+%eps))-x0.^2)>100*%eps then pause,end
-
-if norm(x1.^(-2)-[1 0.25 1/9])>100*%eps then pause,end
-if norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then pause,end
-
-// .^ TEST WITH  COMPLEX VECTORS
-
-p=2+%eps*%i;
-if norm(x1.^p-x1.^2)>100*%eps then pause,end
-if norm(x0.^p-x0.^2)>100*%eps then pause,end
-if norm(x1.^(-p)-x1.^(-2))>100*%eps then pause,end
-
-y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
-if norm(x1.^2-[1 4 9])>100*%eps then pause,end
-if norm(x0.^2-[0 1 4])>100*%eps then pause,end
-
-x1.^2.000000001;x0.^2.000000001;
-if norm(x1.^2-[1 4 9])>100*%eps then pause,end
-if norm(x0.^2-[0 1 4])>100*%eps then pause,end
-
-if norm(x1.^(-2)-[1 0.25 1/9])>100*%eps then pause,end
-if norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])>100*%eps then pause,end
-if norm(x1.^p-x1.^2)>100*%eps then pause,end
-if norm(x0.^p-x0.^2)>100*%eps then pause,end
-if norm(x1.^(-p)-x1.^(-2))>100*%eps then pause,end
-//
-// EMPTY MATRIX
-//=============
-if []^1 <> [] then pause,end
-if []^[1 2 3] <> [] then pause,end
-if [1 2 3]^[] <> [] then pause,end
-if []^[] <> [] then pause,end
-
-// SQUARE MATRIX
-//==============
-
-x1=[1 2;3 4];
-if or(x1^1<>x1) then pause,end
-if or(x1^(-1)<>inv(x1)) then pause,end
-if or(x1^2<>x1*x1) then pause,end
-if or(x1^(-2)<>inv(x1)^2) then pause,end
-
-x1(1,1)=x1(1,1)+%i;
-if or(x1^2<>x1*x1) then pause,end
-if or(x1^(-2)<>inv(x1)^2) then pause,end
-if or(x1^1<>x1) then pause,end
-if or(x1^(-1)<>inv(x1)) then pause,end
-
-if or(rand(4,4)^0<>eye(4,4)) then pause,end
-
-
-x1=[1 2;2 3];x2=x1^(1/2);
-if norm(x2^(2)-x1)>100*%eps then pause,end
-x2=x1^(-1/2);
-if norm(x2^(-2)-x1)>100*%eps then pause,end
-
-x1=[1 2+%i;2-%i 3];
-x2=x1^(1/2);
-if norm(x2^(2)-x1)>100*%eps then pause,end
-x2=x1^(-1/2);
-if norm(x2^(-2)-x1)>100*%eps then pause,end
-
-//TEST WITH POLYNOMIAL VECTOR AND MATRICES
-//---------------------------------------
-s=poly(0,'s');
-if or(coeff(s^3+1)<>[1 0 0 1]) then pause,end
-
-
-x1=[1 s+1 s^3+1];
-if or(x1^2<>[1 1+2*s+s^2  1+2*s^3+s^6]) then pause,end
-if or(coeff(x1^0)<>[1 1 1]) then pause,end
-if or(x1^3<>[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]) then pause,end
-if or((x1^(-1)-[1 1/(1+s)  1/(1+s^3)])<>0) then pause,end
-
-x1=[1 s+1 s.^3+1];
-if or(x1.^2<>[1 1+2*s+s.^2  1+2*s.^3+s.^6]) then pause,end
-if or(coeff(x1.^0)<>[1 1 1]) then pause,end
-if or(x1.^3<>[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]) then pause,end
-if or((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)])<>0) then pause,end
-
-
-
-
-x1=[s+1 2*s;3+4*s^2 4];
-if or(x1^1<>x1) then pause,end
-if or(x1^(-1)<>inv(x1)) then pause,end
-if or(x1^2<>x1*x1) then pause,end
-if or(x1^(-2)<>inv(x1)^2) then pause,end
-
-x1(1,1)=x1(1,1)+%i;
-if or(x1^2<>x1*x1) then pause,end
-//if or(x1^(-2)<>inv(x1)^2) then pause,end  //simp complexe non implemented
-if or(x1^1<>x1) then pause,end
-//if or(x1^(-1)<>inv(x1)) then pause,end //simp complexe non implemented
-
-
-//simple ops
-if 1==0 then pause,end
-if 1<0 then pause,end
-if 1<=0 then pause,end
-if 1==1 then,else pause,end
-if ~(1==1) then pause,end
-if 0>1 then pause,end
-if 0>=1 then pause,end
-if 1<>1 then pause,end
-if 0<>1 then,else pause,end
-if '1'=='0' then pause,end
-if '1'<>'1' then pause,end
-
-%s=poly(0,'s');
-if %s==0 then pause,end
-if 0==%s then pause,end
-if %s==%s then,else pause,end
-if %s<>%s then pause,end
-if %s==%s+1 then pause,end
-if %s+1==%s then pause,end
-
-if 1/%s==0 then pause,end
-if 0==1/%s then pause,end
-if 1/%s==1/%s then,else pause,end
-if 1/%s<>1/%s then pause,end
-if 1/%s==1/%s+1 then pause,end
-if 1/%s+1==1/%s then pause,end
-if 1/%s<>1/%s+1 then , else  pause,end
-if 1/%s+1<>1/%s then , else  pause,end
-
-l=list(1,[1 23],'adssa')
-l1=list(123,'sdwqqwq')
-if l==0 then pause,end
-if 0==l then pause,end
-if l==l then,else pause,end
-if l<>l then pause,end
-if l==l1 then pause,end
-if l1==l then pause,end
-if l<>l1 then , else pause,end
-if l1<>l then , else pause,end
-
-
-if %t&1==2 then pause,end
-if %t|1==2 then, else pause,end
-if %t&-1==2 then pause,end
-if %t|-1==2 then, else pause,end
-if 1<2&1==2 then pause,end
-if 1<2|1==2 then, else pause,end
-if 1<2&-1==2 then pause,end
-if 1<2|-1==2 then, else pause,end
-if 2>1&1==2 then pause,end
-if 2>1|1==2 then, else pause,end
-if 2>1&-1==2 then pause,end
-if 2>1|-1==2 then, else pause,end
-if 1==1&1==2 then pause,end
-if 1==1|1==2 then, else pause,end
-if 1==1&-1==2 then pause,end
-if 1==1|-1==2 then, else pause,end
-if 1<>2&1==2 then pause,end
-if 1<>2|1==2 then, else pause,end
-if 1<>2&-1==2 then pause,end
-if 1<>2|-1==2 then, else pause,end
-
-if %t&1>2 then pause,end
-if %t|1>2 then, else pause,end
-if %t&-1>2 then pause,end
-if %t|-1>2 then, else pause,end
-if 1<2&1>2 then pause,end
-if 1<2|1>2 then, else pause,end
-if 1<2&-1>2 then pause,end
-if 1<2|-1>2 then, else pause,end
-if 2>1&1>2 then pause,end
-if 2>1|1>2 then, else pause,end
-if 2>1&-1>2 then pause,end
-if 2>1|-1>2 then, else pause,end
-if 1==1&1>2 then pause,end
-if 1==1|1>2 then, else pause,end
-if 1==1&-1>2 then pause,end
-if 1==1|-1>2 then, else pause,end
-if 1<>2&1>2 then pause,end
-if 1<>2|1>2 then, else pause,end
-if 1<>2&-1>2 then pause,end
-if 1<>2|-1>2 then, else pause,end
-