restore tests from operations module 73/14873/3
Antoine ELIAS [Wed, 16 Jul 2014 13:39:28 +0000 (15:39 +0200)]
Change-Id: Ie4193b463d2db7dbb772d42a164c541caa51d442

28 files changed:
scilab/modules/ast/tests/unit_tests/addition.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/addition.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/addition_output_type.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/addition_output_type.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/divide.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/divide.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/eq.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/eq.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/kron.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/kron.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/ldivide.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/ldivide.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/lt_le_gt_ge.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/lt_le_gt_ge.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/multiplication.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/multiplication.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/ne.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/ne.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/or_and.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/or_and.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/power.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/power.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/substraction.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/substraction.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/transposition.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/transposition.tst [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/uminus.dia.ref [new file with mode: 0644]
scilab/modules/ast/tests/unit_tests/uminus.tst [new file with mode: 0644]

diff --git a/scilab/modules/ast/tests/unit_tests/addition.dia.ref b/scilab/modules/ast/tests/unit_tests/addition.dia.ref
new file mode 100644 (file)
index 0000000..2ba76fc
--- /dev/null
@@ -0,0 +1,268 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+e = eye();
+ei = (5+%i) * eye();
+p = 1 + %s - %s**2;
+pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
+P = [2*p, -3*p;4*p,-5*p];
+PC = [2*pc, -3*pc;4*pc,-5*pc];
+SP = sparse([1,2;4,5;3,10],[1,2,3]);
+SPC = sparse([1,2;4,5;3,10],[1,2,3]) + sparse([1,2;4,5;3,10],[1,2,3]) * -4*%i;
+assert_checkequal((1:3) + 1, 2:4);
+assert_checkequal((1:3) + (4:6), [5 7 9]);
+assert_checkequal(1 + (1:3), 2:4);
+//[] + []
+assert_checkequal([] + [], []);
+//double + []
+//r + []
+assert_checkequal(r + [], r);
+//c + []
+assert_checkequal(c + [], c);
+//[] + double
+//[] + r
+assert_checkequal([] + r, r);
+//[] + c
+assert_checkequal([] + c, c);
+//DOUBLE + []
+//R + []
+assert_checkequal(R + [], R);
+//C + []
+assert_checkequal(C + [], C);
+//[] + DOUBLE
+//[] + R
+assert_checkequal([] + R, R);
+//[] + C
+assert_checkequal([] + C, C);
+// double + double
+//r + r
+assert_checkequal(r + r, 4);
+//r + c
+assert_checkequal(r + c, 3+2*%i);
+//c + r
+assert_checkequal(c + r, 3+2*%i);
+//c + c
+assert_checkequal(c + c, 2+4*%i);
+//double + DOUBLE
+//r + R
+assert_checkequal(r + R, [3,4;5,6]);
+rR3ref(:,:,1) = [3,4;5,6];
+rR3ref(:,:,2) = [3,5;4,6];
+assert_checkequal(r + R3, rR3ref);
+//r + C
+assert_checkequal(r + C, [3+2*%i,4+4*%i;5+6*%i,6+8*%i]);
+rC3ref(:,:,1) = [3+2*%i,4+4*%i;5+6*%i,6+8*%i];
+rC3ref(:,:,2) = [3-2*%i,5-6*%i;4-4*%i,6-8*%i];
+assert_checkequal(r + C3, rC3ref);
+//c + R
+assert_checkequal(c + R, [2+2*%i,3+2*%i;4+2*%i,5+2*%i]);
+cR3ref(:,:,1) = [2+2*%i,3+2*%i;4+2*%i,5+2*%i];
+cR3ref(:,:,2) = [2+2*%i,4+2*%i;3+2*%i,5+2*%i];
+assert_checkequal(c + R3, cR3ref);
+//c + C
+assert_checkequal(c + C, [2+4*%i,3+6*%i;4+8*%i,5+10*%i]);
+cC3ref(:,:,1) = [2+4*%i,3+6*%i;4+8*%i,5+10*%i];
+cC3ref(:,:,2) = [2,4-4*%i;3-2*%i,5-6*%i];
+assert_checkequal(c + C3, cC3ref);
+//DOUBLE + double
+//R + r
+assert_checkequal(R + r, [3,4;5,6]);
+R3rref(:,:,1) = [3,4;5,6];
+R3rref(:,:,2) = [3,5;4,6];
+assert_checkequal(R3 + r, R3rref);
+//R + c
+assert_checkequal(R + c, [2+2*%i,3+2*%i;4+2*%i,5+2*%i]);
+R3cref(:,:,1) = [2+2*%i,3+2*%i;4+2*%i,5+2*%i];
+R3cref(:,:,2) = [2+2*%i,4+2*%i;3+2*%i,5+2*%i];
+assert_checkequal(R3 + c, R3cref);
+//C + r
+assert_checkequal(C + r, [3+2*%i,4+4*%i;5+6*%i,6+8*%i]);
+C3rref(:,:,1) = [3+2*%i,4+4*%i;5+6*%i,6+8*%i];
+C3rref(:,:,2) = [3-2*%i,5-6*%i;4-4*%i,6-8*%i];
+assert_checkequal(C3 + r, C3rref);
+//c + c
+assert_checkequal(C + c, [2+4*%i,3+6*%i;4+8*%i,5+10*%i]);
+C3cref(:,:,1) = [2+4*%i,3+6*%i;4+8*%i,5+10*%i];
+C3cref(:,:,2) = [2,4-4*%i;3-2*%i,5-6*%i];
+assert_checkequal(C3 + c, C3cref);
+//DOUBLE + DOUBLE
+//R + R
+assert_checkequal(R + R, [2,4;6,8]);
+R3R3ref(:,:,1) = [2,4;6,8];
+R3R3ref(:,:,2) = [2,6;4,8];
+assert_checkequal(R3 + R3, R3R3ref);
+//R + C
+assert_checkequal(R + C, [2+2*%i,4+4*%i;6+6*%i,8+8*%i]);
+R3C3ref(:,:,1) = [2+2*%i,4+4*%i;6+6*%i,8+8*%i];
+R3C3ref(:,:,2) = [2-2*%i,6-6*%i;4-4*%i,8-8*%i];
+assert_checkequal(R3 + C3, R3C3ref);
+//C + R
+assert_checkequal(C + R, [2+2*%i,4+4*%i;6+6*%i,8+8*%i]);
+C3R3ref(:,:,1) = [2+2*%i,4+4*%i;6+6*%i,8+8*%i];
+C3R3ref(:,:,2) = [2-2*%i,6-6*%i;4-4*%i,8-8*%i];
+assert_checkequal(C3 + R3, C3R3ref);
+//C + C
+assert_checkequal(C + C, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
+C3C3ref(:,:,1) = [2+4*%i,4+8*%i;6+12*%i,8+16*%i];
+C3C3ref(:,:,2) = [2-4*%i,6-12*%i;4-8*%i,8-16*%i];
+assert_checkequal(C3 + C3, C3C3ref);
+//identity
+//e + R
+assert_checkequal(e + R, [2 2 ;3 5]);
+//R + e
+assert_checkequal(R + e, [2 2 ;3 5]);
+//e + C
+assert_checkequal(e + C, [2+2*%i,2+4*%i;3+6*%i,5+8*%i]);
+//C + e
+assert_checkequal(C + e, [2+2*%i,2+4*%i;3+6*%i,5+8*%i]);
+//e + r
+assert_checkequal(e + r, 3);
+//r + e
+assert_checkequal(r + e, 3);
+//e + c
+assert_checkequal(e + c, 2+2*%i);
+//c + e
+assert_checkequal(c + e, 2+2*%i);
+//e + []
+assert_checkequal(e + [], e);
+//[] + e
+assert_checkequal([] + e, e);
+//e + e
+assert_checkequal(e + e, 2* eye());
+//e + ei
+assert_checkequal(e + ei, (6+%i) * eye());
+//identity complex
+//ei + R
+assert_checkequal(ei + R, [6+%i,2;3,9+%i]);
+//R + ei
+assert_checkequal(R + ei, [6+%i,2;3,9+%i]);
+//ei + C
+assert_checkequal(ei + C, [6+3*%i,2+4*%i;3+6*%i,9+9*%i]);
+//C + ei
+assert_checkequal(C + ei, [6+3*%i,2+4*%i;3+6*%i,9+9*%i]);
+//ei + r
+assert_checkequal(ei + r, 7 + %i);
+//r + ei
+assert_checkequal(r + ei, 7 + %i);
+//ei + c
+assert_checkequal(ei + c, 6+3*%i);
+//c + ei
+assert_checkequal(c + ei, 6+3*%i);
+//ei + []
+assert_checkequal(ei + [], ei);
+//[] + ei
+assert_checkequal([] + ei, ei);
+//ei + e
+assert_checkequal(ei + e, (6+%i) * eye());
+//ei + ei
+assert_checkequal(ei + ei, (10+2*%i) * eye());
+//poly
+//p + []
+assert_checkequal(p + [], p);
+//[] + p
+assert_checkequal([] + p, p);
+//pc + []
+assert_checkequal(pc + [], pc);
+//[] + pc
+assert_checkequal([] + pc, pc);
+//P + []
+assert_checkequal(P + [], P);
+//[] + P
+assert_checkequal([] + P, P);
+//PC + []
+assert_checkequal(PC + [], PC);
+//[] + PC
+assert_checkequal([] + PC, PC);
+//p + r
+assert_checkequal(p + r, 3+%s-%s**2);
+//r + p
+assert_checkequal(r + p, 3+%s-%s**2);
+//p + c
+assert_checkequal(p + c, 2+%s-%s**2 + 2*%i);
+//c + p
+assert_checkequal(c + p, 2+%s-%s**2 + 2*%i);
+//p + R
+assert_checkequal(p + R, [2+%s-%s**2,3+%s-%s**2;4+%s-%s**2,5+%s-%s**2]);
+//R + p
+assert_checkequal(R + p, [2+%s-%s**2,3+%s-%s**2;4+%s-%s**2,5+%s-%s**2]);
+//p + C
+assert_checkequal(p + C, [2+%s-%s**2+2*%i,3+%s-%s**2+4*%i;4+%s-%s**2+6*%i,5+%s-%s**2+8*%i]);
+//C + p
+assert_checkequal(C + p, [2+%s-%s**2+2*%i,3+%s-%s**2+4*%i;4+%s-%s**2+6*%i,5+%s-%s**2+8*%i]);
+//p + p
+assert_checkequal(p + p, 2 + 2*%s - 2*%s**2);
+//p + pc
+assert_checkequal(p + pc, 2 + 2*%s - 2*%s**2 + (2-3*%s+4*%s**2) * %i);
+//pc + p
+assert_checkequal(pc + p, 2 + 2*%s - 2*%s**2 + (2-3*%s+4*%s**2) * %i);
+//pc + pc
+assert_checkequal(pc + pc, 2 + 2*%s - 2*%s**2 + (4-6*%s+8*%s**2) * %i);
+//P + p
+assert_checkequal(P + p, [3+3*%s-3*%s**2,-2-2*%s+2*%s**2;5+5*%s-5*%s**2,-4-4*%s+4*%s**2]);
+//p + P
+assert_checkequal(p + P, [3+3*%s-3*%s**2,-2-2*%s+2*%s**2;5+5*%s-5*%s**2,-4-4*%s+4*%s**2]);
+//P + pc
+assert_checkequal(P + pc, [3+3*%s-3*%s**2+(2-3*%s+4*%s**2)*%i,-2-2*%s+2*%s**2+(2-3*%s+4*%s**2)*%i;5+5*%s-5*%s**2+(2-3*%s+4*%s**2)*%i,-4-4*%s+4*%s**2+(2-3*%s+4*%s**2)*%i]);
+//pc + P
+assert_checkequal(pc + P, [3+3*%s-3*%s**2+(2-3*%s+4*%s**2)*%i,-2-2*%s+2*%s**2+(2-3*%s+4*%s**2)*%i;5+5*%s-5*%s**2+(2-3*%s+4*%s**2)*%i,-4-4*%s+4*%s**2+(2-3*%s+4*%s**2)*%i]);
+//PC + p
+assert_checkequal(PC + p, [3+3*%s-3*%s**2+(4-6*%s+8*%s**2)*%i,-2-2*%s+2*%s**2+(-6+9*%s-12*%s**2)*%i;5+5*%s-5*%s**2+(8-12*%s+16*%s**2)*%i,-4-4*%s+4*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//p + PC
+assert_checkequal(p + PC, [3+3*%s-3*%s**2+(4-6*%s+8*%s**2)*%i,-2-2*%s+2*%s**2+(-6+9*%s-12*%s**2)*%i;5+5*%s-5*%s**2+(8-12*%s+16*%s**2)*%i,-4-4*%s+4*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//PC + pc
+assert_checkequal(PC + pc, [3+3*%s-3*%s**2+(6-9*%s+12*%s**2)*%i,-2-2*%s+2*%s**2+(-4+6*%s-8*%s**2)*%i;5+5*%s-5*%s**2+(10-15*%s+20*%s**2)*%i,-4-4*%s+4*%s**2+(-8+12*%s-16*%s**2)*%i]);
+//pc + PC
+assert_checkequal(pc + PC, [3+3*%s-3*%s**2+(6-9*%s+12*%s**2)*%i,-2-2*%s+2*%s**2+(-4+6*%s-8*%s**2)*%i;5+5*%s-5*%s**2+(10-15*%s+20*%s**2)*%i,-4-4*%s+4*%s**2+(-8+12*%s-16*%s**2)*%i]);
+//P + P
+assert_checkequal(P + P, [4+4*%s-4*%s**2,-6-6*%s+6*%s**2;8+8*%s-8*%s**2,-10-10*%s+10*%s**2]);
+//P + PC
+assert_checkequal(P + PC, [4+4*%s-4*%s**2+(4-6*%s+8*%s**2)*%i,-6-6*%s+6*%s**2+(-6+9*%s-12*%s**2)*%i;8+8*%s-8*%s**2+(8-12*%s+16*%s**2)*%i,-10-10*%s+10*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//PC + P
+assert_checkequal(PC + P, [4+4*%s-4*%s**2+(4-6*%s+8*%s**2)*%i,-6-6*%s+6*%s**2+(-6+9*%s-12*%s**2)*%i;8+8*%s-8*%s**2+(8-12*%s+16*%s**2)*%i,-10-10*%s+10*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//PC + PC
+assert_checkequal(PC + PC, [4+4*%s-4*%s**2+(8-12*%s+16*%s**2)*%i,-6-6*%s+6*%s**2+(-12+18*%s-24*%s**2)*%i;8+8*%s-8*%s**2+(16-24*%s+32*%s**2)*%i,-10-10*%s+10*%s**2+(-20+30*%s-40*%s**2)*%i]);
+//sparse
+//SP + []
+assert_checkequal(SP + [], SP);
+//[] + SP
+assert_checkequal([] + SP, SP);
+//SPC + []
+assert_checkequal(SPC + [], SPC);
+//[] + SPC
+assert_checkequal([] + SPC, SPC);
+//SP + r
+assert_checkequal(SP + r, full(SP) + r);
+//r + SP
+assert_checkequal(r + SP, full(SP) + r);
+//SP + c
+assert_checkequal(SP + c, full(SP) + c);
+//c + SP
+assert_checkequal(c + SP, full(SP) + c);
+//SPC + r
+assert_checkequal(SPC + r, full(SPC) + r);
+//r + SPC
+assert_checkequal(r + SPC, full(SPC) + r);
+//SPC + c
+assert_checkequal(SPC + c, full(SPC) + c);
+//c + SPC
+assert_checkequal(c + SPC, full(SPC) + c);
+//SP + SP
+assert_checkequal(SP + SP, sparse(full(SP) + full(SP)));
+//SP + SPC
+assert_checkequal(SP + SPC, sparse(full(SP) + full(SPC)));
+//SPC + SP
+assert_checkequal(SPC + SP, sparse(full(SPC) + full(SP)));
+//SPC + SPC
+assert_checkequal(SPC + SPC, sparse(full(SPC) + full(SPC)));
diff --git a/scilab/modules/ast/tests/unit_tests/addition.tst b/scilab/modules/ast/tests/unit_tests/addition.tst
new file mode 100644 (file)
index 0000000..edb61e0
--- /dev/null
@@ -0,0 +1,310 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+e = eye();
+ei = (5+%i) * eye();
+p = 1 + %s - %s**2;
+pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
+P = [2*p, -3*p;4*p,-5*p];
+PC = [2*pc, -3*pc;4*pc,-5*pc];
+SP = sparse([1,2;4,5;3,10],[1,2,3]);
+SPC = sparse([1,2;4,5;3,10],[1,2,3]) + sparse([1,2;4,5;3,10],[1,2,3]) * -4*%i;
+
+assert_checkequal((1:3) + 1, 2:4);
+assert_checkequal((1:3) + (4:6), [5 7 9]);
+assert_checkequal(1 + (1:3), 2:4);
+
+//[] + []
+assert_checkequal([] + [], []);
+
+//double + []
+//r + []
+assert_checkequal(r + [], r);
+//c + []
+assert_checkequal(c + [], c);
+
+//[] + double
+//[] + r
+assert_checkequal([] + r, r);
+//[] + c
+assert_checkequal([] + c, c);
+
+//DOUBLE + []
+//R + []
+assert_checkequal(R + [], R);
+//C + []
+assert_checkequal(C + [], C);
+
+//[] + DOUBLE
+//[] + R
+assert_checkequal([] + R, R);
+//[] + C
+assert_checkequal([] + C, C);
+
+
+// double + double
+
+//r + r
+assert_checkequal(r + r, 4);
+//r + c
+assert_checkequal(r + c, 3+2*%i);
+//c + r
+assert_checkequal(c + r, 3+2*%i);
+//c + c
+assert_checkequal(c + c, 2+4*%i);
+
+
+//double + DOUBLE
+
+//r + R
+assert_checkequal(r + R, [3,4;5,6]);
+rR3ref(:,:,1) = [3,4;5,6];
+rR3ref(:,:,2) = [3,5;4,6];
+assert_checkequal(r + R3, rR3ref);
+//r + C
+assert_checkequal(r + C, [3+2*%i,4+4*%i;5+6*%i,6+8*%i]);
+rC3ref(:,:,1) = [3+2*%i,4+4*%i;5+6*%i,6+8*%i];
+rC3ref(:,:,2) = [3-2*%i,5-6*%i;4-4*%i,6-8*%i];
+assert_checkequal(r + C3, rC3ref);
+//c + R
+assert_checkequal(c + R, [2+2*%i,3+2*%i;4+2*%i,5+2*%i]);
+cR3ref(:,:,1) = [2+2*%i,3+2*%i;4+2*%i,5+2*%i];
+cR3ref(:,:,2) = [2+2*%i,4+2*%i;3+2*%i,5+2*%i];
+assert_checkequal(c + R3, cR3ref);
+//c + C
+assert_checkequal(c + C, [2+4*%i,3+6*%i;4+8*%i,5+10*%i]);
+cC3ref(:,:,1) = [2+4*%i,3+6*%i;4+8*%i,5+10*%i];
+cC3ref(:,:,2) = [2,4-4*%i;3-2*%i,5-6*%i];
+assert_checkequal(c + C3, cC3ref);
+
+
+//DOUBLE + double
+
+//R + r
+assert_checkequal(R + r, [3,4;5,6]);
+R3rref(:,:,1) = [3,4;5,6];
+R3rref(:,:,2) = [3,5;4,6];
+assert_checkequal(R3 + r, R3rref);
+//R + c
+assert_checkequal(R + c, [2+2*%i,3+2*%i;4+2*%i,5+2*%i]);
+R3cref(:,:,1) = [2+2*%i,3+2*%i;4+2*%i,5+2*%i];
+R3cref(:,:,2) = [2+2*%i,4+2*%i;3+2*%i,5+2*%i];
+assert_checkequal(R3 + c, R3cref);
+//C + r
+assert_checkequal(C + r, [3+2*%i,4+4*%i;5+6*%i,6+8*%i]);
+C3rref(:,:,1) = [3+2*%i,4+4*%i;5+6*%i,6+8*%i];
+C3rref(:,:,2) = [3-2*%i,5-6*%i;4-4*%i,6-8*%i];
+assert_checkequal(C3 + r, C3rref);
+//c + c
+assert_checkequal(C + c, [2+4*%i,3+6*%i;4+8*%i,5+10*%i]);
+C3cref(:,:,1) = [2+4*%i,3+6*%i;4+8*%i,5+10*%i];
+C3cref(:,:,2) = [2,4-4*%i;3-2*%i,5-6*%i];
+assert_checkequal(C3 + c, C3cref);
+
+
+//DOUBLE + DOUBLE
+//R + R
+assert_checkequal(R + R, [2,4;6,8]);
+R3R3ref(:,:,1) = [2,4;6,8];
+R3R3ref(:,:,2) = [2,6;4,8];
+assert_checkequal(R3 + R3, R3R3ref);
+//R + C
+assert_checkequal(R + C, [2+2*%i,4+4*%i;6+6*%i,8+8*%i]);
+R3C3ref(:,:,1) = [2+2*%i,4+4*%i;6+6*%i,8+8*%i];
+R3C3ref(:,:,2) = [2-2*%i,6-6*%i;4-4*%i,8-8*%i];
+assert_checkequal(R3 + C3, R3C3ref);
+//C + R
+assert_checkequal(C + R, [2+2*%i,4+4*%i;6+6*%i,8+8*%i]);
+C3R3ref(:,:,1) = [2+2*%i,4+4*%i;6+6*%i,8+8*%i];
+C3R3ref(:,:,2) = [2-2*%i,6-6*%i;4-4*%i,8-8*%i];
+assert_checkequal(C3 + R3, C3R3ref);
+//C + C
+assert_checkequal(C + C, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
+C3C3ref(:,:,1) = [2+4*%i,4+8*%i;6+12*%i,8+16*%i];
+C3C3ref(:,:,2) = [2-4*%i,6-12*%i;4-8*%i,8-16*%i];
+assert_checkequal(C3 + C3, C3C3ref);
+
+//identity
+//e + R
+assert_checkequal(e + R, [2 2 ;3 5]);
+//R + e
+assert_checkequal(R + e, [2 2 ;3 5]);
+
+//e + C
+assert_checkequal(e + C, [2+2*%i,2+4*%i;3+6*%i,5+8*%i]);
+//C + e
+assert_checkequal(C + e, [2+2*%i,2+4*%i;3+6*%i,5+8*%i]);
+
+//e + r
+assert_checkequal(e + r, 3);
+//r + e
+assert_checkequal(r + e, 3);
+
+//e + c
+assert_checkequal(e + c, 2+2*%i);
+//c + e
+assert_checkequal(c + e, 2+2*%i);
+
+//e + []
+assert_checkequal(e + [], e);
+//[] + e
+assert_checkequal([] + e, e);
+
+//e + e
+assert_checkequal(e + e, 2* eye());
+//e + ei
+assert_checkequal(e + ei, (6+%i) * eye());
+
+
+//identity complex
+//ei + R
+assert_checkequal(ei + R, [6+%i,2;3,9+%i]);
+//R + ei
+assert_checkequal(R + ei, [6+%i,2;3,9+%i]);
+
+//ei + C
+assert_checkequal(ei + C, [6+3*%i,2+4*%i;3+6*%i,9+9*%i]);
+//C + ei
+assert_checkequal(C + ei, [6+3*%i,2+4*%i;3+6*%i,9+9*%i]);
+
+//ei + r
+assert_checkequal(ei + r, 7 + %i);
+//r + ei
+assert_checkequal(r + ei, 7 + %i);
+
+//ei + c
+assert_checkequal(ei + c, 6+3*%i);
+//c + ei
+assert_checkequal(c + ei, 6+3*%i);
+
+//ei + []
+assert_checkequal(ei + [], ei);
+//[] + ei
+assert_checkequal([] + ei, ei);
+
+//ei + e
+assert_checkequal(ei + e, (6+%i) * eye());
+//ei + ei
+assert_checkequal(ei + ei, (10+2*%i) * eye());
+
+//poly
+//p + []
+assert_checkequal(p + [], p);
+//[] + p
+assert_checkequal([] + p, p);
+//pc + []
+assert_checkequal(pc + [], pc);
+//[] + pc
+assert_checkequal([] + pc, pc);
+//P + []
+assert_checkequal(P + [], P);
+//[] + P
+assert_checkequal([] + P, P);
+//PC + []
+assert_checkequal(PC + [], PC);
+//[] + PC
+assert_checkequal([] + PC, PC);
+
+//p + r
+assert_checkequal(p + r, 3+%s-%s**2);
+//r + p
+assert_checkequal(r + p, 3+%s-%s**2);
+//p + c
+assert_checkequal(p + c, 2+%s-%s**2 + 2*%i);
+//c + p
+assert_checkequal(c + p, 2+%s-%s**2 + 2*%i);
+
+//p + R
+assert_checkequal(p + R, [2+%s-%s**2,3+%s-%s**2;4+%s-%s**2,5+%s-%s**2]);
+//R + p
+assert_checkequal(R + p, [2+%s-%s**2,3+%s-%s**2;4+%s-%s**2,5+%s-%s**2]);
+//p + C
+assert_checkequal(p + C, [2+%s-%s**2+2*%i,3+%s-%s**2+4*%i;4+%s-%s**2+6*%i,5+%s-%s**2+8*%i]);
+//C + p
+assert_checkequal(C + p, [2+%s-%s**2+2*%i,3+%s-%s**2+4*%i;4+%s-%s**2+6*%i,5+%s-%s**2+8*%i]);
+
+//p + p
+assert_checkequal(p + p, 2 + 2*%s - 2*%s**2);
+//p + pc
+assert_checkequal(p + pc, 2 + 2*%s - 2*%s**2 + (2-3*%s+4*%s**2) * %i);
+//pc + p
+assert_checkequal(pc + p, 2 + 2*%s - 2*%s**2 + (2-3*%s+4*%s**2) * %i);
+//pc + pc
+assert_checkequal(pc + pc, 2 + 2*%s - 2*%s**2 + (4-6*%s+8*%s**2) * %i);
+
+//P + p
+assert_checkequal(P + p, [3+3*%s-3*%s**2,-2-2*%s+2*%s**2;5+5*%s-5*%s**2,-4-4*%s+4*%s**2]);
+//p + P
+assert_checkequal(p + P, [3+3*%s-3*%s**2,-2-2*%s+2*%s**2;5+5*%s-5*%s**2,-4-4*%s+4*%s**2]);
+//P + pc
+assert_checkequal(P + pc, [3+3*%s-3*%s**2+(2-3*%s+4*%s**2)*%i,-2-2*%s+2*%s**2+(2-3*%s+4*%s**2)*%i;5+5*%s-5*%s**2+(2-3*%s+4*%s**2)*%i,-4-4*%s+4*%s**2+(2-3*%s+4*%s**2)*%i]);
+//pc + P
+assert_checkequal(pc + P, [3+3*%s-3*%s**2+(2-3*%s+4*%s**2)*%i,-2-2*%s+2*%s**2+(2-3*%s+4*%s**2)*%i;5+5*%s-5*%s**2+(2-3*%s+4*%s**2)*%i,-4-4*%s+4*%s**2+(2-3*%s+4*%s**2)*%i]);
+//PC + p
+assert_checkequal(PC + p, [3+3*%s-3*%s**2+(4-6*%s+8*%s**2)*%i,-2-2*%s+2*%s**2+(-6+9*%s-12*%s**2)*%i;5+5*%s-5*%s**2+(8-12*%s+16*%s**2)*%i,-4-4*%s+4*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//p + PC
+assert_checkequal(p + PC, [3+3*%s-3*%s**2+(4-6*%s+8*%s**2)*%i,-2-2*%s+2*%s**2+(-6+9*%s-12*%s**2)*%i;5+5*%s-5*%s**2+(8-12*%s+16*%s**2)*%i,-4-4*%s+4*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//PC + pc
+assert_checkequal(PC + pc, [3+3*%s-3*%s**2+(6-9*%s+12*%s**2)*%i,-2-2*%s+2*%s**2+(-4+6*%s-8*%s**2)*%i;5+5*%s-5*%s**2+(10-15*%s+20*%s**2)*%i,-4-4*%s+4*%s**2+(-8+12*%s-16*%s**2)*%i]);
+//pc + PC
+assert_checkequal(pc + PC, [3+3*%s-3*%s**2+(6-9*%s+12*%s**2)*%i,-2-2*%s+2*%s**2+(-4+6*%s-8*%s**2)*%i;5+5*%s-5*%s**2+(10-15*%s+20*%s**2)*%i,-4-4*%s+4*%s**2+(-8+12*%s-16*%s**2)*%i]);
+
+//P + P
+assert_checkequal(P + P, [4+4*%s-4*%s**2,-6-6*%s+6*%s**2;8+8*%s-8*%s**2,-10-10*%s+10*%s**2]);
+//P + PC
+assert_checkequal(P + PC, [4+4*%s-4*%s**2+(4-6*%s+8*%s**2)*%i,-6-6*%s+6*%s**2+(-6+9*%s-12*%s**2)*%i;8+8*%s-8*%s**2+(8-12*%s+16*%s**2)*%i,-10-10*%s+10*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//PC + P
+assert_checkequal(PC + P, [4+4*%s-4*%s**2+(4-6*%s+8*%s**2)*%i,-6-6*%s+6*%s**2+(-6+9*%s-12*%s**2)*%i;8+8*%s-8*%s**2+(8-12*%s+16*%s**2)*%i,-10-10*%s+10*%s**2+(-10+15*%s-20*%s**2)*%i]);
+//PC + PC
+assert_checkequal(PC + PC, [4+4*%s-4*%s**2+(8-12*%s+16*%s**2)*%i,-6-6*%s+6*%s**2+(-12+18*%s-24*%s**2)*%i;8+8*%s-8*%s**2+(16-24*%s+32*%s**2)*%i,-10-10*%s+10*%s**2+(-20+30*%s-40*%s**2)*%i]);
+
+
+//sparse
+//SP + []
+assert_checkequal(SP + [], SP);
+//[] + SP
+assert_checkequal([] + SP, SP);
+//SPC + []
+assert_checkequal(SPC + [], SPC);
+//[] + SPC
+assert_checkequal([] + SPC, SPC);
+
+//SP + r
+assert_checkequal(SP + r, full(SP) + r);
+//r + SP
+assert_checkequal(r + SP, full(SP) + r);
+//SP + c
+assert_checkequal(SP + c, full(SP) + c);
+//c + SP
+assert_checkequal(c + SP, full(SP) + c);
+//SPC + r
+assert_checkequal(SPC + r, full(SPC) + r);
+//r + SPC
+assert_checkequal(r + SPC, full(SPC) + r);
+//SPC + c
+assert_checkequal(SPC + c, full(SPC) + c);
+//c + SPC
+assert_checkequal(c + SPC, full(SPC) + c);
+
+//SP + SP
+assert_checkequal(SP + SP, sparse(full(SP) + full(SP)));
+//SP + SPC
+assert_checkequal(SP + SPC, sparse(full(SP) + full(SPC)));
+//SPC + SP
+assert_checkequal(SPC + SP, sparse(full(SPC) + full(SP)));
+//SPC + SPC
+assert_checkequal(SPC + SPC, sparse(full(SPC) + full(SPC)));
diff --git a/scilab/modules/ast/tests/unit_tests/addition_output_type.dia.ref b/scilab/modules/ast/tests/unit_tests/addition_output_type.dia.ref
new file mode 100644 (file)
index 0000000..2205875
--- /dev/null
@@ -0,0 +1,91 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+function ret = bool(b)
+    ret = (b == 1);
+endfunction
+types = list(int8, uint8, int16, uint16, int32, uint32, int64, uint64, double, bool);
+ref =[  "int8","uint8","int16","uint16","int32","uint32","int64","uint64","int8","int8"; ...
+        "uint8","uint8","uint16","uint16","uint32","uint32","uint64","uint64","uint8","uint8"; ...
+        "int16","uint16","int16","uint16","int32","uint32","int64","uint64","int16","int16"; ...
+        "uint16","uint16","uint16","uint16","uint32","uint32","uint64","uint64","uint16","uint16"; ...
+        "int32","uint32","int32","uint32","int32","uint32","int64","uint64","int32","int32"; ...
+        "uint32","uint32","uint32","uint32","uint32","uint32","uint64","uint64","uint32","uint32"; ...
+        "int64","uint64","int64","uint64","int64","uint64","int64","uint64","int64","int64"; ...
+        "uint64","uint64","uint64","uint64","uint64","uint64","uint64","uint64","uint64","uint64"; ...
+        "int8","uint8","int16","uint16","int32","uint32","int64","uint64","constant","constant"; ...
+        "int8","uint8","int16","uint16","int32","uint32","int64","uint64","constant","boolean"]
+ref  = 
+       column 1 to 9
+!int8    uint8   int16   uint16  int32   uint32  int64   uint64  int8      !
+!                                                                          !
+!uint8   uint8   uint16  uint16  uint32  uint32  uint64  uint64  uint8     !
+!                                                                          !
+!int16   uint16  int16   uint16  int32   uint32  int64   uint64  int16     !
+!                                                                          !
+!uint16  uint16  uint16  uint16  uint32  uint32  uint64  uint64  uint16    !
+!                                                                          !
+!int32   uint32  int32   uint32  int32   uint32  int64   uint64  int32     !
+!                                                                          !
+!uint32  uint32  uint32  uint32  uint32  uint32  uint64  uint64  uint32    !
+!                                                                          !
+!int64   uint64  int64   uint64  int64   uint64  int64   uint64  int64     !
+!                                                                          !
+!uint64  uint64  uint64  uint64  uint64  uint64  uint64  uint64  uint64    !
+!                                                                          !
+!int8    uint8   int16   uint16  int32   uint32  int64   uint64  constant  !
+!                                                                          !
+!int8    uint8   int16   uint16  int32   uint32  int64   uint64  constant  !
+       column 10 to 10
+!int8      !
+!          !
+!uint8     !
+!          !
+!int16     !
+!          !
+!uint16    !
+!          !
+!int32     !
+!          !
+!uint32    !
+!          !
+!int64     !
+!          !
+!uint64    !
+!          !
+!constant  !
+!          !
+!boolean   !
+typesize = size(types);
+//Scalar + Scalar
+for i = 1 : typesize
+    for j = 1 : typesize
+        ScalarScalarComputed(i,j) = typeof(types(i)(1) + types(j)(1));
+    end
+end
+assert_checkequal(ref, ScalarScalarComputed);
+//Scalar + Matrix
+for i = 1 : typesize
+    for j = 1 : typesize
+        ScalarMatrixComputed(i,j) = typeof(types(i)(1) + types(j)([1 2]));
+    end
+end
+assert_checkequal(ref, ScalarMatrixComputed);
+//Matrix + Scalar
+for i = 1 : typesize
+    for j = 1 : typesize
+        MatrixScalarComputed(i,j) = typeof(types(i)([1 2]) + types(j)(1));
+    end
+end
+assert_checkequal(ref, MatrixScalarComputed);
+//Matrix + Matrix
+for i = 1 : typesize
+    for j = 1 : typesize
+        MatrixMatrixComputed(i,j) = typeof(types(i)([1 2]) + types(j)([1 2]));
+    end
+end
+assert_checkequal(ref, MatrixMatrixComputed);
diff --git a/scilab/modules/ast/tests/unit_tests/addition_output_type.tst b/scilab/modules/ast/tests/unit_tests/addition_output_type.tst
new file mode 100644 (file)
index 0000000..86bd16f
--- /dev/null
@@ -0,0 +1,63 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+function ret = bool(b)
+    ret = (b == 1);
+endfunction
+types = list(int8, uint8, int16, uint16, int32, uint32, int64, uint64, double, bool);
+
+
+ref =[  "int8","uint8","int16","uint16","int32","uint32","int64","uint64","int8","int8"; ...
+        "uint8","uint8","uint16","uint16","uint32","uint32","uint64","uint64","uint8","uint8"; ...
+        "int16","uint16","int16","uint16","int32","uint32","int64","uint64","int16","int16"; ...
+        "uint16","uint16","uint16","uint16","uint32","uint32","uint64","uint64","uint16","uint16"; ...
+        "int32","uint32","int32","uint32","int32","uint32","int64","uint64","int32","int32"; ...
+        "uint32","uint32","uint32","uint32","uint32","uint32","uint64","uint64","uint32","uint32"; ...
+        "int64","uint64","int64","uint64","int64","uint64","int64","uint64","int64","int64"; ...
+        "uint64","uint64","uint64","uint64","uint64","uint64","uint64","uint64","uint64","uint64"; ...
+        "int8","uint8","int16","uint16","int32","uint32","int64","uint64","constant","constant"; ...
+        "int8","uint8","int16","uint16","int32","uint32","int64","uint64","constant","boolean"]
+
+typesize = size(types);
+
+//Scalar + Scalar
+for i = 1 : typesize
+    for j = 1 : typesize
+        ScalarScalarComputed(i,j) = typeof(types(i)(1) + types(j)(1));
+    end
+end
+
+assert_checkequal(ref, ScalarScalarComputed);
+
+//Scalar + Matrix
+for i = 1 : typesize
+    for j = 1 : typesize
+        ScalarMatrixComputed(i,j) = typeof(types(i)(1) + types(j)([1 2]));
+    end
+end
+
+assert_checkequal(ref, ScalarMatrixComputed);
+
+//Matrix + Scalar
+for i = 1 : typesize
+    for j = 1 : typesize
+        MatrixScalarComputed(i,j) = typeof(types(i)([1 2]) + types(j)(1));
+    end
+end
+
+assert_checkequal(ref, MatrixScalarComputed);
+
+//Matrix + Matrix
+for i = 1 : typesize
+    for j = 1 : typesize
+        MatrixMatrixComputed(i,j) = typeof(types(i)([1 2]) + types(j)([1 2]));
+    end
+end
+
+assert_checkequal(ref, MatrixMatrixComputed);
diff --git a/scilab/modules/ast/tests/unit_tests/divide.dia.ref b/scilab/modules/ast/tests/unit_tests/divide.dia.ref
new file mode 100644 (file)
index 0000000..b6c3677
--- /dev/null
@@ -0,0 +1,77 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+//double / double
+
+//r / r
+assert_checkalmostequal(r / r, 1)
+//r / c
+assert_checkalmostequal(r / c, 0.4-0.8*%i)
+//c / r
+assert_checkalmostequal(c / r, 0.5+%i)
+//c / c
+assert_checkalmostequal(c / c, 1)
+
+
+
+//double / DOUBLE
+
+//r / R
+assert_checkalmostequal(r / R, [-4,2;3,-1])
+//r / C
+assert_checkalmostequal(r / C, [-0.8+1.6*%i,0.4-0.8*%i;0.6-1.2*%i,-0.2+0.4*%i])
+//c / R
+assert_checkalmostequal(c / R, [-2-4*%i,1+2*%i;1.5+3*%i,-0.5-1*%i])
+//c / C
+assert_checkalmostequal(c / C, [-2,1;1.5,-0.5])
+
+
+//DOUBLE / double
+
+//R / r
+assert_checkalmostequal(R / r, [0.5,1;1.5,2])
+R3rref(:,:,1) = [0.5,1;1.5,2];
+R3rref(:,:,2) = [0.5,1.5;1,2];
+assert_checkalmostequal(R3 / r, R3rref)
+//R / c
+assert_checkalmostequal(R / c, [0.2-0.4*%i,0.4-0.8*%i;0.6-1.2*%i,0.8-1.6*%i])
+R3cref(:,:,1) = [0.2-0.4*%i,0.4-0.8*%i;0.6-1.2*%i,0.8-1.6*%i];
+R3cref(:,:,2) = [0.2-0.4*%i,0.6-1.2*%i;0.4-0.8*%i,0.8-1.6*%i];
+assert_checkalmostequal(R3 / c, R3cref)
+//C / r
+assert_checkalmostequal(C / r, [0.5+1*%i,1+2*%i;1.5+3*%i,2+4*%i])
+C3rref(:,:,1) = [0.5+1*%i,1+2*%i;1.5+3*%i,2+4*%i];
+C3rref(:,:,2) = [0.5-1*%i,1.5-3*%i;1-2*%i,2-4*%i];
+assert_checkalmostequal(C3 / r, C3rref)
+//C / c
+assert_checkalmostequal(C / c, [1,2;3,4])
+C3cref(:,:,1) = [1,2;3,4];
+C3cref(:,:,2) = [-0.6-0.8*%i,-1.8-2.4*%i;-1.2-1.6*%i,-2.4-3.2*%i];
+assert_checkalmostequal(C3 / c, C3cref)
+
+
+//DOUBLE / DOUBLE
+
+//R / R
+assert_checkalmostequal(R / R, [1,0;0,1])
+//R / C
+assert_checkalmostequal(R / C, [0.2-0.4*%i,0;0,0.2-0.4*%i])
+//C / R
+assert_checkalmostequal(C / R, [1+2*%i,0;0,1+2*%i])
+//C / C
+assert_checkalmostequal(C / C, [1,0;0,1])
diff --git a/scilab/modules/ast/tests/unit_tests/divide.tst b/scilab/modules/ast/tests/unit_tests/divide.tst
new file mode 100644 (file)
index 0000000..b6c3677
--- /dev/null
@@ -0,0 +1,77 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+//double / double
+
+//r / r
+assert_checkalmostequal(r / r, 1)
+//r / c
+assert_checkalmostequal(r / c, 0.4-0.8*%i)
+//c / r
+assert_checkalmostequal(c / r, 0.5+%i)
+//c / c
+assert_checkalmostequal(c / c, 1)
+
+
+
+//double / DOUBLE
+
+//r / R
+assert_checkalmostequal(r / R, [-4,2;3,-1])
+//r / C
+assert_checkalmostequal(r / C, [-0.8+1.6*%i,0.4-0.8*%i;0.6-1.2*%i,-0.2+0.4*%i])
+//c / R
+assert_checkalmostequal(c / R, [-2-4*%i,1+2*%i;1.5+3*%i,-0.5-1*%i])
+//c / C
+assert_checkalmostequal(c / C, [-2,1;1.5,-0.5])
+
+
+//DOUBLE / double
+
+//R / r
+assert_checkalmostequal(R / r, [0.5,1;1.5,2])
+R3rref(:,:,1) = [0.5,1;1.5,2];
+R3rref(:,:,2) = [0.5,1.5;1,2];
+assert_checkalmostequal(R3 / r, R3rref)
+//R / c
+assert_checkalmostequal(R / c, [0.2-0.4*%i,0.4-0.8*%i;0.6-1.2*%i,0.8-1.6*%i])
+R3cref(:,:,1) = [0.2-0.4*%i,0.4-0.8*%i;0.6-1.2*%i,0.8-1.6*%i];
+R3cref(:,:,2) = [0.2-0.4*%i,0.6-1.2*%i;0.4-0.8*%i,0.8-1.6*%i];
+assert_checkalmostequal(R3 / c, R3cref)
+//C / r
+assert_checkalmostequal(C / r, [0.5+1*%i,1+2*%i;1.5+3*%i,2+4*%i])
+C3rref(:,:,1) = [0.5+1*%i,1+2*%i;1.5+3*%i,2+4*%i];
+C3rref(:,:,2) = [0.5-1*%i,1.5-3*%i;1-2*%i,2-4*%i];
+assert_checkalmostequal(C3 / r, C3rref)
+//C / c
+assert_checkalmostequal(C / c, [1,2;3,4])
+C3cref(:,:,1) = [1,2;3,4];
+C3cref(:,:,2) = [-0.6-0.8*%i,-1.8-2.4*%i;-1.2-1.6*%i,-2.4-3.2*%i];
+assert_checkalmostequal(C3 / c, C3cref)
+
+
+//DOUBLE / DOUBLE
+
+//R / R
+assert_checkalmostequal(R / R, [1,0;0,1])
+//R / C
+assert_checkalmostequal(R / C, [0.2-0.4*%i,0;0,0.2-0.4*%i])
+//C / R
+assert_checkalmostequal(C / R, [1+2*%i,0;0,1+2*%i])
+//C / C
+assert_checkalmostequal(C / C, [1,0;0,1])
diff --git a/scilab/modules/ast/tests/unit_tests/eq.dia.ref b/scilab/modules/ast/tests/unit_tests/eq.dia.ref
new file mode 100644 (file)
index 0000000..1e411eb
--- /dev/null
@@ -0,0 +1,23 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+// double == double
+assert_checktrue(r == r);
+assert_checktrue(c == c);
+// DOUBLE == DOUBLE
+assert_checktrue(R == R);
+assert_checktrue(C == C);
+assert_checktrue(R3 == R3);
+assert_checktrue(C3 == C3);
diff --git a/scilab/modules/ast/tests/unit_tests/eq.tst b/scilab/modules/ast/tests/unit_tests/eq.tst
new file mode 100644 (file)
index 0000000..3447d83
--- /dev/null
@@ -0,0 +1,28 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+// double == double
+assert_checktrue(r == r);
+assert_checktrue(c == c);
+
+// DOUBLE == DOUBLE
+assert_checktrue(R == R);
+assert_checktrue(C == C);
+assert_checktrue(R3 == R3);
+assert_checktrue(C3 == C3);
diff --git a/scilab/modules/ast/tests/unit_tests/kron.dia.ref b/scilab/modules/ast/tests/unit_tests/kron.dia.ref
new file mode 100644 (file)
index 0000000..9d90a9c
--- /dev/null
@@ -0,0 +1,47 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+r = 2;
+R = [1,2;3,4];
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+// double .*. double
+//r .*. r
+assert_checkequal(r .*. r, 4);
+//r .*. c
+assert_checkequal(r .*. c, 2+4*%i);
+//c .*. r
+assert_checkequal(c .*. r, 2+4*%i);
+//c .*. c
+assert_checkequal(c .*. c, -3+4*%i);
+// double .*. DOUBLE
+//r .*. R
+assert_checkequal(r .*. R, [2,4;6,8]);
+//r .*. C
+assert_checkequal(r .*. C, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
+//c .*. R
+assert_checkequal(c .*. R, [1+2*%i,2+4*%i;3+6*%i,4+8*%i]);
+//c .*. C
+assert_checkequal(c .*. C, [-3+4*%i,-6+8*%i;-9+12*%i,-12+16*%i]);
+// DOUBLE .*. double
+//R .*. r
+assert_checkequal(R .*.r, [2,4;6,8]);
+//R .*. c
+assert_checkequal(R .*.c, [1+2*%i,2+4*%i;3+6*%i,4+8*%i]);
+//C .*. r
+assert_checkequal(C .*.r, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
+//C .*. c
+assert_checkequal(C .*.c, [-3+4*%i,-6+8*%i;-9+12*%i,-12+16*%i]);
+// DOUBLE .*. DOUBLE
+//R .*. R
+assert_checkequal(R .*. R, [1,2,2,4;3,4,6,8;3,6,4,8;9,12,12,16]);
+//R .*. C
+assert_checkequal(R .*. C, [1+2*%i,2+4*%i,2+4*%i,4+8*%i;3+6*%i,4+8*%i,6+12*%i,8+16*%i;3+6*%i,6+12*%i,4+8*%i,8+16*%i;9+18*%i,12+24*%i,12+24*%i,16+32*%i]);
+//C .*. R
+assert_checkequal(C .*. R, [1+2*%i,2+4*%i,2+4*%i,4+8*%i;3+6*%i,4+8*%i,6+12*%i,8+16*%i;3+6*%i,6+12*%i,4+8*%i,8+16*%i;9+18*%i,12+24*%i,12+24*%i,16+32*%i]);
+//C .*. C
+assert_checkequal(C .*. C, [-3+4*%i,-6+8*%i,-6+8*%i,-12+16*%i;-9+12*%i,-12+16*%i,-18+24*%i,-24+32*%i;-9+12*%i,-18+24*%i,-12+16*%i,-24+32*%i;-27+36*%i,-36+48*%i,-36+48*%i,-48+64*%i]);
diff --git a/scilab/modules/ast/tests/unit_tests/kron.tst b/scilab/modules/ast/tests/unit_tests/kron.tst
new file mode 100644 (file)
index 0000000..c7a867c
--- /dev/null
@@ -0,0 +1,60 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+
+// double .*. double
+
+//r .*. r
+assert_checkequal(r .*. r, 4);
+//r .*. c
+assert_checkequal(r .*. c, 2+4*%i);
+//c .*. r
+assert_checkequal(c .*. r, 2+4*%i);
+//c .*. c
+assert_checkequal(c .*. c, -3+4*%i);
+
+
+// double .*. DOUBLE
+
+//r .*. R
+assert_checkequal(r .*. R, [2,4;6,8]);
+//r .*. C
+assert_checkequal(r .*. C, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
+//c .*. R
+assert_checkequal(c .*. R, [1+2*%i,2+4*%i;3+6*%i,4+8*%i]);
+//c .*. C
+assert_checkequal(c .*. C, [-3+4*%i,-6+8*%i;-9+12*%i,-12+16*%i]);
+
+
+// DOUBLE .*. double
+
+//R .*. r
+assert_checkequal(R .*.r, [2,4;6,8]);
+//R .*. c
+assert_checkequal(R .*.c, [1+2*%i,2+4*%i;3+6*%i,4+8*%i]);
+//C .*. r
+assert_checkequal(C .*.r, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
+//C .*. c
+assert_checkequal(C .*.c, [-3+4*%i,-6+8*%i;-9+12*%i,-12+16*%i]);
+
+
+// DOUBLE .*. DOUBLE
+
+//R .*. R
+assert_checkequal(R .*. R, [1,2,2,4;3,4,6,8;3,6,4,8;9,12,12,16]);
+//R .*. C
+assert_checkequal(R .*. C, [1+2*%i,2+4*%i,2+4*%i,4+8*%i;3+6*%i,4+8*%i,6+12*%i,8+16*%i;3+6*%i,6+12*%i,4+8*%i,8+16*%i;9+18*%i,12+24*%i,12+24*%i,16+32*%i]);
+//C .*. R
+assert_checkequal(C .*. R, [1+2*%i,2+4*%i,2+4*%i,4+8*%i;3+6*%i,4+8*%i,6+12*%i,8+16*%i;3+6*%i,6+12*%i,4+8*%i,8+16*%i;9+18*%i,12+24*%i,12+24*%i,16+32*%i]);
+//C .*. C
+assert_checkequal(C .*. C, [-3+4*%i,-6+8*%i,-6+8*%i,-12+16*%i;-9+12*%i,-12+16*%i,-18+24*%i,-24+32*%i;-9+12*%i,-18+24*%i,-12+16*%i,-24+32*%i;-27+36*%i,-36+48*%i,-36+48*%i,-48+64*%i]);
diff --git a/scilab/modules/ast/tests/unit_tests/ldivide.dia.ref b/scilab/modules/ast/tests/unit_tests/ldivide.dia.ref
new file mode 100644 (file)
index 0000000..e11f58b
--- /dev/null
@@ -0,0 +1,91 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org\ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+r = 2;
+R = [1,2;3,4];
+T = 2 * R;
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+RR = [1, 2, 3;4, 5, 6];
+TT = 2 * RR;
+// check that input are not modified.
+R \ T;
+assert_checkequal(R, [1,2;3,4]);
+assert_checkequal(T, 2*[1,2;3,4]);
+RR \ TT;
+assert_checkequal(RR, [1, 2, 3;4, 5, 6]);
+assert_checkequal(TT, 2*[1, 2, 3;4, 5, 6]);
+//double \ double
+//r \ r
+assert_checkalmostequal(r \ r, 1);
+//r \ c
+assert_checkalmostequal(r \ c, c / r);
+//c \ r
+assert_checkalmostequal(c \ r, r / c);
+//c \ c
+assert_checkalmostequal(c \ c, 1);
+//double \ DOUBLE
+//r \ R
+assert_checkalmostequal(r \ R, R / r);
+//r \ C
+assert_checkalmostequal(r \ C, C / r);
+//c \ R
+assert_checkalmostequal(c \ R, R / c);
+//c \ C
+assert_checkalmostequal(c \ C, C / c);
+//DOUBLE \ double
+//R \ r
+assert_checkalmostequal(R \ r, [-4,2;3,-1]);
+//R \ c
+assert_checkalmostequal(R \ c, [-2-4*%i , 1+2*%i ; 1.5+3*%i, -0.5-%i]);
+//C \ r
+assert_checkalmostequal(C \ r, [-0.8+1.6*%i,0.4-0.8*%i;0.6-1.2*%i,-0.2+0.4*%i]);
+//C \ c
+assert_checkalmostequal(C \ c, [-2,1;1.5,-0.5]);
+//DOUBLE \ DOUBLE
+//R \ R
+assert_checkalmostequal(R \ R, R / R);
+//R \ C
+assert_checkalmostequal(R \ C, C / R);
+//C \ R
+assert_checkalmostequal(C \ R, R / C, [], %eps);
+//C \ C
+assert_checkalmostequal(C \ C, C / C);
+// dot left division
+//double .\ double
+//r .\ r
+assert_checkalmostequal(r .\ r, 1);
+//r .\ c
+assert_checkalmostequal(r .\ c, c ./ r);
+//c .\ r
+assert_checkalmostequal(c .\ r, r ./ c);
+//c .\ c
+assert_checkalmostequal(c .\ c, 1);
+//double .\ DOUBLE
+//r .\ R
+assert_checkalmostequal(r .\ R, R ./ r);
+//r .\ C
+assert_checkalmostequal(r .\ C, C ./ r);
+//c .\ R
+assert_checkalmostequal(c .\ R, R ./ c);
+//c .\ C
+assert_checkalmostequal(c .\ C, C ./ c);
+//DOUBLE .\ double
+//R .\ c
+assert_checkalmostequal(R .\ c, c ./ R);
+//C .\ r
+assert_checkalmostequal(C .\ r, r ./ C);
+//C .\ c
+assert_checkalmostequal(C .\ c, c ./ C);
+//DOUBLE .\ DOUBLE
+//R .\ R
+assert_checkalmostequal(R .\ R, R ./ R);
+//R .\ C
+assert_checkalmostequal(R .\ C, C ./ R);
+//C .\ R
+assert_checkalmostequal(C .\ R, R ./ C);
+//C .\ C
+assert_checkalmostequal(C .\ C, C ./ C);
diff --git a/scilab/modules/ast/tests/unit_tests/ldivide.tst b/scilab/modules/ast/tests/unit_tests/ldivide.tst
new file mode 100644 (file)
index 0000000..3f92c49
--- /dev/null
@@ -0,0 +1,118 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org\ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+r = 2;
+R = [1,2;3,4];
+T = 2 * R;
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+RR = [1, 2, 3;4, 5, 6];
+TT = 2 * RR;
+
+// check that input are not modified.
+R \ T;
+assert_checkequal(R, [1,2;3,4]);
+assert_checkequal(T, 2*[1,2;3,4]);
+
+RR \ TT;
+assert_checkequal(RR, [1, 2, 3;4, 5, 6]);
+assert_checkequal(TT, 2*[1, 2, 3;4, 5, 6]);
+
+//double \ double
+
+//r \ r
+assert_checkalmostequal(r \ r, 1);
+//r \ c
+assert_checkalmostequal(r \ c, c / r);
+//c \ r
+assert_checkalmostequal(c \ r, r / c);
+//c \ c
+assert_checkalmostequal(c \ c, 1);
+
+
+
+//double \ DOUBLE
+
+//r \ R
+assert_checkalmostequal(r \ R, R / r);
+//r \ C
+assert_checkalmostequal(r \ C, C / r);
+//c \ R
+assert_checkalmostequal(c \ R, R / c);
+//c \ C
+assert_checkalmostequal(c \ C, C / c);
+
+
+//DOUBLE \ double
+
+//R \ r
+assert_checkalmostequal(R \ r, [-4,2;3,-1]);
+//R \ c
+assert_checkalmostequal(R \ c, [-2-4*%i , 1+2*%i ; 1.5+3*%i, -0.5-%i]);
+//C \ r
+assert_checkalmostequal(C \ r, [-0.8+1.6*%i,0.4-0.8*%i;0.6-1.2*%i,-0.2+0.4*%i]);
+//C \ c
+assert_checkalmostequal(C \ c, [-2,1;1.5,-0.5]);
+
+
+//DOUBLE \ DOUBLE
+
+//R \ R
+assert_checkalmostequal(R \ R, R / R);
+//R \ C
+assert_checkalmostequal(R \ C, C / R);
+//C \ R
+assert_checkalmostequal(C \ R, R / C, [], %eps);
+//C \ C
+assert_checkalmostequal(C \ C, C / C);
+
+// dot left division
+//double .\ double
+
+//r .\ r
+assert_checkalmostequal(r .\ r, 1);
+//r .\ c
+assert_checkalmostequal(r .\ c, c ./ r);
+//c .\ r
+assert_checkalmostequal(c .\ r, r ./ c);
+//c .\ c
+assert_checkalmostequal(c .\ c, 1);
+
+
+
+//double .\ DOUBLE
+
+//r .\ R
+assert_checkalmostequal(r .\ R, R ./ r);
+//r .\ C
+assert_checkalmostequal(r .\ C, C ./ r);
+//c .\ R
+assert_checkalmostequal(c .\ R, R ./ c);
+//c .\ C
+assert_checkalmostequal(c .\ C, C ./ c);
+
+
+//DOUBLE .\ double
+
+//R .\ c
+assert_checkalmostequal(R .\ c, c ./ R);
+//C .\ r
+assert_checkalmostequal(C .\ r, r ./ C);
+//C .\ c
+assert_checkalmostequal(C .\ c, c ./ C);
+
+
+//DOUBLE .\ DOUBLE
+
+//R .\ R
+assert_checkalmostequal(R .\ R, R ./ R);
+//R .\ C
+assert_checkalmostequal(R .\ C, C ./ R);
+//C .\ R
+assert_checkalmostequal(C .\ R, R ./ C);
+//C .\ C
+assert_checkalmostequal(C .\ C, C ./ C);
diff --git a/scilab/modules/ast/tests/unit_tests/lt_le_gt_ge.dia.ref b/scilab/modules/ast/tests/unit_tests/lt_le_gt_ge.dia.ref
new file mode 100644 (file)
index 0000000..dd4b38e
--- /dev/null
@@ -0,0 +1,25 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+// double < double
+assert_checkfalse(r < r);
+assert_checkfalse(r > r);
+assert_checktrue(r >= r);
+assert_checktrue(r <= r);
+// DOUBLE < DOUBLE
+assert_checkfalse(R < R);
+assert_checkfalse(R > R);
+assert_checktrue(R >= R);
+assert_checktrue(R <= R);
+assert_checkfalse(R3 < R3);
+assert_checkfalse(R3 > R3);
+assert_checktrue(R3 <= R3);
+assert_checktrue(R3 >= R3);
diff --git a/scilab/modules/ast/tests/unit_tests/lt_le_gt_ge.tst b/scilab/modules/ast/tests/unit_tests/lt_le_gt_ge.tst
new file mode 100644 (file)
index 0000000..3acceb3
--- /dev/null
@@ -0,0 +1,29 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+
+// double < double
+assert_checkfalse(r < r);
+assert_checkfalse(r > r);
+assert_checktrue(r >= r);
+assert_checktrue(r <= r);
+
+// DOUBLE < DOUBLE
+assert_checkfalse(R < R);
+assert_checkfalse(R > R);
+assert_checktrue(R >= R);
+assert_checktrue(R <= R);
+assert_checkfalse(R3 < R3);
+assert_checkfalse(R3 > R3);
+assert_checktrue(R3 <= R3);
+assert_checktrue(R3 >= R3);
diff --git a/scilab/modules/ast/tests/unit_tests/multiplication.dia.ref b/scilab/modules/ast/tests/unit_tests/multiplication.dia.ref
new file mode 100644 (file)
index 0000000..ad0a635
--- /dev/null
@@ -0,0 +1,89 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+
+// double * double
+
+// r * r
+assert_checkequal(r * r, 4);
+// r * c
+assert_checkequal(r * c, 2+%i*4);
+// c * r
+assert_checkequal(c * r, 2+%i*4);
+// c * c
+assert_checkequal(c * c, -3+%i*4);
+
+
+// double * DOUBLE
+
+// r * R
+assert_checkequal(r * R, [2,4;6,8]);
+rR3ref(:,:,1) = [2,4;6,8];
+rR3ref(:,:,2) = [2,6;4,8];
+assert_checkequal(r * R3, rR3ref);
+// r * C
+assert_checkequal(r * C, [2+%i*4,4+%i*8;6+%i*12,8+%i*16]);
+rC3ref(:,:,1) = [2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16];
+rC3ref(:,:,2) = [2-%i*4, 6-%i*12; 4-%i*8, 8-%i*16];
+assert_checkequal(r * C3, rC3ref);
+// c * R
+assert_checkequal(c * R, [1+%i*2,2+%i*4;3+%i*6,4+%i*8]);
+cR3ref(:,:,1) = [1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8];
+cR3ref(:,:,2) = [1+%i*2, 3+%i*6; 2+%i*4, 4+%i*8];
+assert_checkequal(c * R3, cR3ref);
+// c * C
+assert_checkequal(c * C, [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16]);
+cC3ref(:,:,1) = [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16];
+cC3ref(:,:,2) = [ 5, 15; 10, 20];
+assert_checkequal(c * C3, cC3ref);
+
+
+// DOUBLE * double
+
+// R * r
+assert_checkequal(R * r, [2,4;6,8]);
+R3rref(:,:,1) = [2,4;6,8];
+R3rref(:,:,2) = [2,6;4,8];
+assert_checkequal(R3 * r, R3rref);
+// R * c
+assert_checkequal(R * c, [ 1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8]);
+R3cref(:,:,1) = [ 1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8];
+R3cref(:,:,2) = [ 1+%i*2, 3+%i*6; 2+%i*4, 4+%i*8];
+assert_checkequal(R3 * c, R3cref);
+// C * r
+assert_checkequal(C * r, [ 2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16]);
+C3rref(:,:,1) = [ 2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16];
+C3rref(:,:,2) = [ 2-%i*4, 6-%i*12; 4-%i*8, 8-%i*16];
+assert_checkequal(C3 * r, C3rref);
+// C * c
+assert_checkequal(C * c, [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16]);
+C3cref(:,:,1) = [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16];
+C3cref(:,:,2) = [ 5, 15; 10, 20];
+assert_checkequal(C3 * c, C3cref);
+
+
+// DOUBLE * DOUBLE
+
+// R * R
+assert_checkequal(R * R, [7,10;15,22]);
+// R * C
+assert_checkequal(R * C, [ 7+%i*14, 10+%i*20; 15+%i*30, 22+%i*44]);
+// C * R
+assert_checkequal(C * R, [ 7+%i*14, 10+%i*20; 15+%i*30, 22+%i*44]);
+// C * C
+assert_checkequal(C * C, [-21+%i*28,-30+%i*40;-45+%i*60,-66+%i*88]);
diff --git a/scilab/modules/ast/tests/unit_tests/multiplication.tst b/scilab/modules/ast/tests/unit_tests/multiplication.tst
new file mode 100644 (file)
index 0000000..ad0a635
--- /dev/null
@@ -0,0 +1,89 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+
+// double * double
+
+// r * r
+assert_checkequal(r * r, 4);
+// r * c
+assert_checkequal(r * c, 2+%i*4);
+// c * r
+assert_checkequal(c * r, 2+%i*4);
+// c * c
+assert_checkequal(c * c, -3+%i*4);
+
+
+// double * DOUBLE
+
+// r * R
+assert_checkequal(r * R, [2,4;6,8]);
+rR3ref(:,:,1) = [2,4;6,8];
+rR3ref(:,:,2) = [2,6;4,8];
+assert_checkequal(r * R3, rR3ref);
+// r * C
+assert_checkequal(r * C, [2+%i*4,4+%i*8;6+%i*12,8+%i*16]);
+rC3ref(:,:,1) = [2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16];
+rC3ref(:,:,2) = [2-%i*4, 6-%i*12; 4-%i*8, 8-%i*16];
+assert_checkequal(r * C3, rC3ref);
+// c * R
+assert_checkequal(c * R, [1+%i*2,2+%i*4;3+%i*6,4+%i*8]);
+cR3ref(:,:,1) = [1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8];
+cR3ref(:,:,2) = [1+%i*2, 3+%i*6; 2+%i*4, 4+%i*8];
+assert_checkequal(c * R3, cR3ref);
+// c * C
+assert_checkequal(c * C, [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16]);
+cC3ref(:,:,1) = [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16];
+cC3ref(:,:,2) = [ 5, 15; 10, 20];
+assert_checkequal(c * C3, cC3ref);
+
+
+// DOUBLE * double
+
+// R * r
+assert_checkequal(R * r, [2,4;6,8]);
+R3rref(:,:,1) = [2,4;6,8];
+R3rref(:,:,2) = [2,6;4,8];
+assert_checkequal(R3 * r, R3rref);
+// R * c
+assert_checkequal(R * c, [ 1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8]);
+R3cref(:,:,1) = [ 1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8];
+R3cref(:,:,2) = [ 1+%i*2, 3+%i*6; 2+%i*4, 4+%i*8];
+assert_checkequal(R3 * c, R3cref);
+// C * r
+assert_checkequal(C * r, [ 2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16]);
+C3rref(:,:,1) = [ 2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16];
+C3rref(:,:,2) = [ 2-%i*4, 6-%i*12; 4-%i*8, 8-%i*16];
+assert_checkequal(C3 * r, C3rref);
+// C * c
+assert_checkequal(C * c, [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16]);
+C3cref(:,:,1) = [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16];
+C3cref(:,:,2) = [ 5, 15; 10, 20];
+assert_checkequal(C3 * c, C3cref);
+
+
+// DOUBLE * DOUBLE
+
+// R * R
+assert_checkequal(R * R, [7,10;15,22]);
+// R * C
+assert_checkequal(R * C, [ 7+%i*14, 10+%i*20; 15+%i*30, 22+%i*44]);
+// C * R
+assert_checkequal(C * R, [ 7+%i*14, 10+%i*20; 15+%i*30, 22+%i*44]);
+// C * C
+assert_checkequal(C * C, [-21+%i*28,-30+%i*40;-45+%i*60,-66+%i*88]);
diff --git a/scilab/modules/ast/tests/unit_tests/ne.dia.ref b/scilab/modules/ast/tests/unit_tests/ne.dia.ref
new file mode 100644 (file)
index 0000000..6028eaf
--- /dev/null
@@ -0,0 +1,23 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+// double == double
+assert_checkfalse(r <> r);
+assert_checkfalse(c <> c);
+// DOUBLE == DOUBLE
+assert_checkfalse(R <> R);
+assert_checkfalse(C <> C);
+assert_checkfalse(R3 <> R3);
+assert_checkfalse(C3 <> C3);
diff --git a/scilab/modules/ast/tests/unit_tests/ne.tst b/scilab/modules/ast/tests/unit_tests/ne.tst
new file mode 100644 (file)
index 0000000..94e38ca
--- /dev/null
@@ -0,0 +1,28 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+// double == double
+assert_checkfalse(r <> r);
+assert_checkfalse(c <> c);
+
+// DOUBLE == DOUBLE
+assert_checkfalse(R <> R);
+assert_checkfalse(C <> C);
+assert_checkfalse(R3 <> R3);
+assert_checkfalse(C3 <> C3);
diff --git a/scilab/modules/ast/tests/unit_tests/or_and.dia.ref b/scilab/modules/ast/tests/unit_tests/or_and.dia.ref
new file mode 100644 (file)
index 0000000..46f61e5
--- /dev/null
@@ -0,0 +1,372 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+//
+// <-- JVM NOT MANDATORY -->
+false = %f;
+true = %t;
+//scalar AND scalar in operation
+assert_checkfalse(false & false);
+assert_checkfalse(false & true);
+assert_checkfalse(true & false);
+assert_checktrue(true & true);
+//scalar OR scalar in operation
+assert_checkfalse(false | false);
+assert_checktrue(false | true);
+assert_checktrue(true | false);
+assert_checktrue(true | true);
+//scalar AND scalar in condition
+if (false & false) <> false then bugmes();quit;end
+if (false & true) <> false then bugmes();quit;end
+if (true & false) <> false then bugmes();quit;end
+if (true & true) <> true then bugmes();quit;end
+//scalar OR scalar in condition
+if (false | false) <> false then bugmes();quit;end
+if (false | true) <> true then bugmes();quit;end
+if (true | false) <> true then bugmes();quit;end
+if (true | true) <> true then bugmes();quit;end
+MF = [false,false;false,false];
+MT = [true,true;true,true];
+//scalar AND matrix in operation
+assert_checkfalse(false & MF);
+assert_checkfalse(false & MT);
+assert_checkfalse(true & MF);
+assert_checktrue(true & MT);
+//scalar OR matrix in operation
+assert_checkfalse(false | MF);
+assert_checktrue(false | MT);
+assert_checktrue(true | MF);
+assert_checktrue(true | MT);
+//scalar AND matrix in condition
+if (false & MF) <> false then bugmes();quit;end
+if (false & MT) <> false then bugmes();quit;end
+if (true & MF) <> false then bugmes();quit;end
+if (true & MT) <> true then bugmes();quit;end
+//scalar OR matrix in condition
+if (false | MF) <> false then bugmes();quit;end
+if (false | MT) <> true then bugmes();quit;end
+if (true | MF) <> true then bugmes();quit;end
+if (true | MT) <> true then bugmes();quit;end
+//matrix AND scalar in operation
+assert_checkfalse(MF & false);
+assert_checkfalse(MF & true);
+assert_checkfalse(MT & false);
+assert_checktrue(MT & true);
+//matrix OR scalar in operation
+assert_checkfalse(MF | false);
+assert_checktrue(MF | true);
+assert_checktrue(MT | false);
+assert_checktrue(MT | true);
+//matrix AND scalar in condition
+if (MF & false) <> false then bugmes();quit;end
+if (MF & true) <> false then bugmes();quit;end
+if (MT & false) <> false then bugmes();quit;end
+if (MT & true) <> true then bugmes();quit;end
+//matrix OR scalar in condition
+if (MF | false) <> false then bugmes();quit;end
+if (MF | true) <> true then bugmes();quit;end
+if (MT | false) <> true then bugmes();quit;end
+if (MT | true) <> true then bugmes();quit;end
+//matrix AND matrix in operation
+assert_checkfalse(MF & MF);
+assert_checkfalse(MF & MT);
+assert_checkfalse(MT & MF);
+assert_checktrue(MT & MT);
+//matrix OR matrix in operation
+assert_checkfalse(MF | MF);
+assert_checktrue(MF | MT);
+assert_checktrue(MT | MF);
+assert_checktrue(MT | MT);
+//matrix AND matrix in condition
+if (MF & MF) <> MF then bugmes();quit;end
+if (MF & MT) <> MF then bugmes();quit;end
+if (MT & MF) <> MF then bugmes();quit;end
+if (MT & MT) <> MT then bugmes();quit;end
+//matrix OR matrix in condition
+if (MF | MF) <> MF then bugmes();quit;end
+if (MF | MT) <> MT then bugmes();quit;end
+if (MT | MF) <> MT then bugmes();quit;end
+if (MT | MT) <> MT then bugmes();quit;end
+//int | int
+b0 = int8(0);
+b1 = int8(1);
+b2 = int8(2);
+b3 = int8(4);
+b4 = int8(8);
+b12 = int8(3);
+b13 = int8(5);
+b14 = int8(9);
+b23 = int8(6);
+b24 = int8(10);
+b34 = int8(12);
+b123 = int8(7);
+b124 = int8(11);
+b134 = int8(13);
+b234 = int8(14);
+b1234 = int8(15);
+//scalar OR scalar in operation
+assert_checktrue((b0 | b0) == b0);
+assert_checktrue((b0 | b1) == b1);
+assert_checktrue((b0 | b2) == b2);
+assert_checktrue((b0 | b3) == b3);
+assert_checktrue((b0 | b4) == b4);
+assert_checktrue((b0 | b12) == b12);
+assert_checktrue((b0 | b13) == b13);
+assert_checktrue((b0 | b14) == b14);
+assert_checktrue((b0 | b23) == b23);
+assert_checktrue((b0 | b24) == b24);
+assert_checktrue((b0 | b34) == b34);
+assert_checktrue((b0 | b123) == b123);
+assert_checktrue((b0 | b134) == b134);
+assert_checktrue((b0 | b234) == b234);
+assert_checktrue((b0 | b1234) == b1234);
+assert_checktrue((b1 | b1) == b1);
+assert_checktrue((b1 | b2) == b12);
+assert_checktrue((b1 | b3) == b13);
+assert_checktrue((b1 | b4) == b14);
+assert_checktrue((b1 | b12) == b12);
+assert_checktrue((b1 | b13) == b13);
+assert_checktrue((b1 | b14) == b14);
+assert_checktrue((b1 | b23) == b123);
+assert_checktrue((b1 | b24) == b124);
+assert_checktrue((b1 | b34) == b134);
+assert_checktrue((b1 | b123) == b123);
+assert_checktrue((b1 | b134) == b134);
+assert_checktrue((b1 | b234) == b1234);
+assert_checktrue((b1 | b1234) == b1234);
+assert_checktrue((b2 | b2) == b2);
+assert_checktrue((b2 | b3) == b23);
+assert_checktrue((b2 | b4) == b24);
+assert_checktrue((b2 | b12) == b12);
+assert_checktrue((b2 | b13) == b123);
+assert_checktrue((b2 | b14) == b124);
+assert_checktrue((b2 | b23) == b23);
+assert_checktrue((b2 | b24) == b24);
+assert_checktrue((b2 | b34) == b234);
+assert_checktrue((b2 | b123) == b123);
+assert_checktrue((b2 | b134) == b1234);
+assert_checktrue((b2 | b234) == b234);
+assert_checktrue((b2 | b1234) == b1234);
+assert_checktrue((b3 | b3) == b3);
+assert_checktrue((b3 | b4) == b34);
+assert_checktrue((b3 | b12) == b123);
+assert_checktrue((b3 | b13) == b13);
+assert_checktrue((b3 | b14) == b134);
+assert_checktrue((b3 | b23) == b23);
+assert_checktrue((b3 | b24) == b234);
+assert_checktrue((b3 | b34) == b34);
+assert_checktrue((b3 | b123) == b123);
+assert_checktrue((b3 | b134) == b134);
+assert_checktrue((b3 | b234) == b234);
+assert_checktrue((b3 | b1234) == b1234);
+assert_checktrue((b4 | b4) == b4);
+assert_checktrue((b4 | b12) == b124);
+assert_checktrue((b4 | b13) == b134);
+assert_checktrue((b4 | b14) == b14);
+assert_checktrue((b4 | b23) == b234);
+assert_checktrue((b4 | b24) == b24);
+assert_checktrue((b4 | b34) == b34);
+assert_checktrue((b4 | b123) == b1234);
+assert_checktrue((b4 | b134) == b134);
+assert_checktrue((b4 | b234) == b234);
+assert_checktrue((b4 | b1234) == b1234);
+assert_checktrue((b12 | b12) == b12);
+assert_checktrue((b12 | b13) == b123);
+assert_checktrue((b12 | b14) == b124);
+assert_checktrue((b12 | b23) == b123);
+assert_checktrue((b12 | b24) == b124);
+assert_checktrue((b12 | b34) == b1234);
+assert_checktrue((b12 | b123) == b123);
+assert_checktrue((b12 | b134) == b1234);
+assert_checktrue((b12 | b234) == b1234);
+assert_checktrue((b12 | b1234) == b1234);
+assert_checktrue((b13 | b13) == b13);
+assert_checktrue((b13 | b14) == b134);
+assert_checktrue((b13 | b23) == b123);
+assert_checktrue((b13 | b24) == b1234);
+assert_checktrue((b13 | b34) == b134);
+assert_checktrue((b13 | b123) == b123);
+assert_checktrue((b13 | b134) == b134);
+assert_checktrue((b13 | b234) == b1234);
+assert_checktrue((b13 | b1234) == b1234);
+assert_checktrue((b14 | b14) == b14);
+assert_checktrue((b14 | b23) == b1234);
+assert_checktrue((b14 | b24) == b124);
+assert_checktrue((b14 | b34) == b134);
+assert_checktrue((b14 | b123) == b1234);
+assert_checktrue((b14 | b134) == b134);
+assert_checktrue((b14 | b234) == b1234);
+assert_checktrue((b14 | b1234) == b1234);
+assert_checktrue((b23 | b23) == b23);
+assert_checktrue((b23 | b24) == b234);
+assert_checktrue((b23 | b34) == b234);
+assert_checktrue((b23 | b123) == b123);
+assert_checktrue((b23 | b134) == b1234);
+assert_checktrue((b23 | b234) == b234);
+assert_checktrue((b23 | b1234) == b1234);
+assert_checktrue((b24 | b24) == b24);
+assert_checktrue((b24 | b34) == b234);
+assert_checktrue((b24 | b123) == b1234);
+assert_checktrue((b24 | b134) == b1234);
+assert_checktrue((b24 | b234) == b234);
+assert_checktrue((b24 | b1234) == b1234);
+assert_checktrue((b34 | b34) == b34);
+assert_checktrue((b34 | b123) == b1234);
+assert_checktrue((b34 | b134) == b134);
+assert_checktrue((b34 | b234) == b234);
+assert_checktrue((b34 | b1234) == b1234);
+assert_checktrue((b123 | b123) == b123);
+assert_checktrue((b123 | b134) == b1234);
+assert_checktrue((b123 | b234) == b1234);
+assert_checktrue((b123 | b1234) == b1234);
+assert_checktrue((b134 | b134) == b134);
+assert_checktrue((b134 | b234) == b1234);
+assert_checktrue((b134 | b1234) == b1234);
+assert_checktrue((b234 | b234) == b234);
+assert_checktrue((b234 | b1234) == b1234);
+assert_checktrue((b1234 | b1234) == b1234);
+//scalar AND scalar in operation
+assert_checktrue((b0 & b0) == b0);
+assert_checktrue((b0 & b1) == b0);
+assert_checktrue((b0 & b2) == b0);
+assert_checktrue((b0 & b3) == b0);
+assert_checktrue((b0 & b4) == b0);
+assert_checktrue((b0 & b12) == b0);
+assert_checktrue((b0 & b13) == b0);
+assert_checktrue((b0 & b14) == b0);
+assert_checktrue((b0 & b23) == b0);
+assert_checktrue((b0 & b24) == b0);
+assert_checktrue((b0 & b34) == b0);
+assert_checktrue((b0 & b123) == b0);
+assert_checktrue((b0 & b134) == b0);
+assert_checktrue((b0 & b234) == b0);
+assert_checktrue((b0 & b1234) == b0);
+assert_checktrue((b1 & b1) == b1);
+assert_checktrue((b1 & b2) == b0);
+assert_checktrue((b1 & b3) == b0);
+assert_checktrue((b1 & b4) == b0);
+assert_checktrue((b1 & b12) == b1);
+assert_checktrue((b1 & b13) == b1);
+assert_checktrue((b1 & b14) == b1);
+assert_checktrue((b1 & b23) == b0);
+assert_checktrue((b1 & b24) == b0);
+assert_checktrue((b1 & b34) == b0);
+assert_checktrue((b1 & b123) == b1);
+assert_checktrue((b1 & b134) == b1);
+assert_checktrue((b1 & b234) == b0);
+assert_checktrue((b1 & b1234) == b1);
+assert_checktrue((b2 & b2) == b2);
+assert_checktrue((b2 & b3) == b0);
+assert_checktrue((b2 & b4) == b0);
+assert_checktrue((b2 & b12) == b2);
+assert_checktrue((b2 & b13) == b0);
+assert_checktrue((b2 & b14) == b0);
+assert_checktrue((b2 & b23) == b2);
+assert_checktrue((b2 & b24) == b2);
+assert_checktrue((b2 & b34) == b0);
+assert_checktrue((b2 & b123) == b2);
+assert_checktrue((b2 & b134) == b0);
+assert_checktrue((b2 & b234) == b2);
+assert_checktrue((b2 & b1234) == b2);
+assert_checktrue((b3 & b3) == b3);
+assert_checktrue((b3 & b4) == b0);
+assert_checktrue((b3 & b12) == b0);
+assert_checktrue((b3 & b13) == b3);
+assert_checktrue((b3 & b14) == b0);
+assert_checktrue((b3 & b23) == b3);
+assert_checktrue((b3 & b24) == b0);
+assert_checktrue((b3 & b34) == b3);
+assert_checktrue((b3 & b123) == b3);
+assert_checktrue((b3 & b134) == b3);
+assert_checktrue((b3 & b234) == b3);
+assert_checktrue((b3 & b1234) == b3);
+assert_checktrue((b4 & b4) == b4);
+assert_checktrue((b4 & b12) == b0);
+assert_checktrue((b4 & b13) == b0);
+assert_checktrue((b4 & b14) == b4);
+assert_checktrue((b4 & b23) == b0);
+assert_checktrue((b4 & b24) == b4);
+assert_checktrue((b4 & b34) == b4);
+assert_checktrue((b4 & b123) == b0);
+assert_checktrue((b4 & b134) == b4);
+assert_checktrue((b4 & b234) == b4);
+assert_checktrue((b4 & b1234) == b4);
+assert_checktrue((b12 & b12) == b12);
+assert_checktrue((b12 & b13) == b1);
+assert_checktrue((b12 & b14) == b1);
+assert_checktrue((b12 & b23) == b2);
+assert_checktrue((b12 & b24) == b2);
+assert_checktrue((b12 & b34) == b0);
+assert_checktrue((b12 & b123) == b12);
+assert_checktrue((b12 & b134) == b1);
+assert_checktrue((b12 & b234) == b2);
+assert_checktrue((b12 & b1234) == b12);
+assert_checktrue((b13 & b13) == b13);
+assert_checktrue((b13 & b14) == b1);
+assert_checktrue((b13 & b23) == b3);
+assert_checktrue((b13 & b24) == b0);
+assert_checktrue((b13 & b34) == b3);
+assert_checktrue((b13 & b123) == b13);
+assert_checktrue((b13 & b134) == b13);
+assert_checktrue((b13 & b234) == b3);
+assert_checktrue((b13 & b1234) == b13);
+assert_checktrue((b14 & b14) == b14);
+assert_checktrue((b14 & b23) == b0);
+assert_checktrue((b14 & b24) == b4);
+assert_checktrue((b14 & b34) == b4);
+assert_checktrue((b14 & b123) == b1);
+assert_checktrue((b14 & b134) == b14);
+assert_checktrue((b14 & b234) == b4);
+assert_checktrue((b14 & b1234) == b14);
+assert_checktrue((b23 & b23) == b23);
+assert_checktrue((b23 & b24) == b2);
+assert_checktrue((b23 & b34) == b3);
+assert_checktrue((b23 & b123) == b23);
+assert_checktrue((b23 & b134) == b3);
+assert_checktrue((b23 & b234) == b23);
+assert_checktrue((b23 & b1234) == b23);
+assert_checktrue((b24 & b24) == b24);
+assert_checktrue((b24 & b34) == b4);
+assert_checktrue((b24 & b123) == b2);
+assert_checktrue((b24 & b134) == b4);
+assert_checktrue((b24 & b234) == b24);
+assert_checktrue((b24 & b1234) == b24);
+assert_checktrue((b34 & b34) == b34);
+assert_checktrue((b34 & b123) == b3);
+assert_checktrue((b34 & b134) == b34);
+assert_checktrue((b34 & b234) == b34);
+assert_checktrue((b34 & b1234) == b34);
+assert_checktrue((b123 & b123) == b123);
+assert_checktrue((b123 & b134) == b13);
+assert_checktrue((b123 & b234) == b23);
+assert_checktrue((b123 & b1234) == b123);
+assert_checktrue((b134 & b134) == b134);
+assert_checktrue((b134 & b234) == b34);
+assert_checktrue((b134 & b1234) == b134);
+assert_checktrue((b234 & b234) == b234);
+assert_checktrue((b234 & b1234) == b234);
+assert_checktrue((b1234 & b1234) == b1234);
+//scalar OR scalar in condition
+if b0 | b0 then bugmes();quit;end
+//others case returns true and we do not want to test with '=='
+//scalar AND scalar in condition
+if b0 & b0 then bugmes();quit;end
+if b0 & b1 then bugmes();quit;end
+if b0 & b2 then bugmes();quit;end
+if b0 & b3 then bugmes();quit;end
+if b0 & b4 then bugmes();quit;end
+if b0 & b12 then bugmes();quit;end
+if b0 & b13 then bugmes();quit;end
+if b0 & b14 then bugmes();quit;end
+if b0 & b23 then bugmes();quit;end
+if b0 & b24 then bugmes();quit;end
+if b0 & b34 then bugmes();quit;end
+if b0 & b123 then bugmes();quit;end
+if b0 & b124 then bugmes();quit;end
+if b0 & b134 then bugmes();quit;end
+if b0 & b234 then bugmes();quit;end
+if b0 & b1234 then bugmes();quit;end
+//others case returns true and we do not want to test with '=='
diff --git a/scilab/modules/ast/tests/unit_tests/or_and.tst b/scilab/modules/ast/tests/unit_tests/or_and.tst
new file mode 100644 (file)
index 0000000..1bfa8fa
--- /dev/null
@@ -0,0 +1,429 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+//
+// <-- JVM NOT MANDATORY -->
+
+false = %f;
+true = %t;
+
+
+//scalar AND scalar in operation
+assert_checkfalse(false & false);
+assert_checkfalse(false & true);
+assert_checkfalse(true & false);
+assert_checktrue(true & true);
+
+//scalar OR scalar in operation
+assert_checkfalse(false | false);
+assert_checktrue(false | true);
+assert_checktrue(true | false);
+assert_checktrue(true | true);
+
+//scalar AND scalar in condition
+if (false & false) <> false then pause; end
+if (false & true) <> false then pause; end
+if (true & false) <> false then pause; end
+if (true & true) <> true then pause; end
+
+//scalar OR scalar in condition
+if (false | false) <> false then pause; end
+if (false | true) <> true then pause; end
+if (true | false) <> true then pause; end
+if (true | true) <> true then pause; end
+
+
+MF = [false,false;false,false];
+MT = [true,true;true,true];
+
+//scalar AND matrix in operation
+assert_checkfalse(false & MF);
+assert_checkfalse(false & MT);
+assert_checkfalse(true & MF);
+assert_checktrue(true & MT);
+
+//scalar OR matrix in operation
+assert_checkfalse(false | MF);
+assert_checktrue(false | MT);
+assert_checktrue(true | MF);
+assert_checktrue(true | MT);
+
+//scalar AND matrix in condition
+if (false & MF) <> false then pause; end
+if (false & MT) <> false then pause; end
+if (true & MF) <> false then pause; end
+if (true & MT) <> true then pause; end
+
+//scalar OR matrix in condition
+if (false | MF) <> false then pause; end
+if (false | MT) <> true then pause; end
+if (true | MF) <> true then pause; end
+if (true | MT) <> true then pause; end
+
+//matrix AND scalar in operation
+assert_checkfalse(MF & false);
+assert_checkfalse(MF & true);
+assert_checkfalse(MT & false);
+assert_checktrue(MT & true);
+
+//matrix OR scalar in operation
+assert_checkfalse(MF | false);
+assert_checktrue(MF | true);
+assert_checktrue(MT | false);
+assert_checktrue(MT | true);
+
+//matrix AND scalar in condition
+if (MF & false) <> false then pause; end
+if (MF & true) <> false then pause; end
+if (MT & false) <> false then pause; end
+if (MT & true) <> true then pause; end
+
+//matrix OR scalar in condition
+if (MF | false) <> false then pause; end
+if (MF | true) <> true then pause; end
+if (MT | false) <> true then pause; end
+if (MT | true) <> true then pause; end
+
+//matrix AND matrix in operation
+assert_checkfalse(MF & MF);
+assert_checkfalse(MF & MT);
+assert_checkfalse(MT & MF);
+assert_checktrue(MT & MT);
+
+//matrix OR matrix in operation
+assert_checkfalse(MF | MF);
+assert_checktrue(MF | MT);
+assert_checktrue(MT | MF);
+assert_checktrue(MT | MT);
+
+//matrix AND matrix in condition
+if (MF & MF) <> MF then pause; end
+if (MF & MT) <> MF then pause; end
+if (MT & MF) <> MF then pause; end
+if (MT & MT) <> MT then pause; end
+
+//matrix OR matrix in condition
+if (MF | MF) <> MF then pause; end
+if (MF | MT) <> MT then pause; end
+if (MT | MF) <> MT then pause; end
+if (MT | MT) <> MT then pause; end
+
+
+//int | int
+b0 = int8(0);
+b1 = int8(1);
+b2 = int8(2);
+b3 = int8(4);
+b4 = int8(8);
+
+b12 = int8(3);
+b13 = int8(5);
+b14 = int8(9);
+b23 = int8(6);
+b24 = int8(10);
+b34 = int8(12);
+
+b123 = int8(7);
+b124 = int8(11);
+b134 = int8(13);
+b234 = int8(14);
+b1234 = int8(15);
+
+//scalar OR scalar in operation
+assert_checktrue((b0 | b0) == b0);
+assert_checktrue((b0 | b1) == b1);
+assert_checktrue((b0 | b2) == b2);
+assert_checktrue((b0 | b3) == b3);
+assert_checktrue((b0 | b4) == b4);
+assert_checktrue((b0 | b12) == b12);
+assert_checktrue((b0 | b13) == b13);
+assert_checktrue((b0 | b14) == b14);
+assert_checktrue((b0 | b23) == b23);
+assert_checktrue((b0 | b24) == b24);
+assert_checktrue((b0 | b34) == b34);
+assert_checktrue((b0 | b123) == b123);
+assert_checktrue((b0 | b134) == b134);
+assert_checktrue((b0 | b234) == b234);
+assert_checktrue((b0 | b1234) == b1234);
+
+assert_checktrue((b1 | b1) == b1);
+assert_checktrue((b1 | b2) == b12);
+assert_checktrue((b1 | b3) == b13);
+assert_checktrue((b1 | b4) == b14);
+assert_checktrue((b1 | b12) == b12);
+assert_checktrue((b1 | b13) == b13);
+assert_checktrue((b1 | b14) == b14);
+assert_checktrue((b1 | b23) == b123);
+assert_checktrue((b1 | b24) == b124);
+assert_checktrue((b1 | b34) == b134);
+assert_checktrue((b1 | b123) == b123);
+assert_checktrue((b1 | b134) == b134);
+assert_checktrue((b1 | b234) == b1234);
+assert_checktrue((b1 | b1234) == b1234);
+
+assert_checktrue((b2 | b2) == b2);
+assert_checktrue((b2 | b3) == b23);
+assert_checktrue((b2 | b4) == b24);
+assert_checktrue((b2 | b12) == b12);
+assert_checktrue((b2 | b13) == b123);
+assert_checktrue((b2 | b14) == b124);
+assert_checktrue((b2 | b23) == b23);
+assert_checktrue((b2 | b24) == b24);
+assert_checktrue((b2 | b34) == b234);
+assert_checktrue((b2 | b123) == b123);
+assert_checktrue((b2 | b134) == b1234);
+assert_checktrue((b2 | b234) == b234);
+assert_checktrue((b2 | b1234) == b1234);
+
+assert_checktrue((b3 | b3) == b3);
+assert_checktrue((b3 | b4) == b34);
+assert_checktrue((b3 | b12) == b123);
+assert_checktrue((b3 | b13) == b13);
+assert_checktrue((b3 | b14) == b134);
+assert_checktrue((b3 | b23) == b23);
+assert_checktrue((b3 | b24) == b234);
+assert_checktrue((b3 | b34) == b34);
+assert_checktrue((b3 | b123) == b123);
+assert_checktrue((b3 | b134) == b134);
+assert_checktrue((b3 | b234) == b234);
+assert_checktrue((b3 | b1234) == b1234);
+
+assert_checktrue((b4 | b4) == b4);
+assert_checktrue((b4 | b12) == b124);
+assert_checktrue((b4 | b13) == b134);
+assert_checktrue((b4 | b14) == b14);
+assert_checktrue((b4 | b23) == b234);
+assert_checktrue((b4 | b24) == b24);
+assert_checktrue((b4 | b34) == b34);
+assert_checktrue((b4 | b123) == b1234);
+assert_checktrue((b4 | b134) == b134);
+assert_checktrue((b4 | b234) == b234);
+assert_checktrue((b4 | b1234) == b1234);
+
+assert_checktrue((b12 | b12) == b12);
+assert_checktrue((b12 | b13) == b123);
+assert_checktrue((b12 | b14) == b124);
+assert_checktrue((b12 | b23) == b123);
+assert_checktrue((b12 | b24) == b124);
+assert_checktrue((b12 | b34) == b1234);
+assert_checktrue((b12 | b123) == b123);
+assert_checktrue((b12 | b134) == b1234);
+assert_checktrue((b12 | b234) == b1234);
+assert_checktrue((b12 | b1234) == b1234);
+
+assert_checktrue((b13 | b13) == b13);
+assert_checktrue((b13 | b14) == b134);
+assert_checktrue((b13 | b23) == b123);
+assert_checktrue((b13 | b24) == b1234);
+assert_checktrue((b13 | b34) == b134);
+assert_checktrue((b13 | b123) == b123);
+assert_checktrue((b13 | b134) == b134);
+assert_checktrue((b13 | b234) == b1234);
+assert_checktrue((b13 | b1234) == b1234);
+
+assert_checktrue((b14 | b14) == b14);
+assert_checktrue((b14 | b23) == b1234);
+assert_checktrue((b14 | b24) == b124);
+assert_checktrue((b14 | b34) == b134);
+assert_checktrue((b14 | b123) == b1234);
+assert_checktrue((b14 | b134) == b134);
+assert_checktrue((b14 | b234) == b1234);
+assert_checktrue((b14 | b1234) == b1234);
+
+assert_checktrue((b23 | b23) == b23);
+assert_checktrue((b23 | b24) == b234);
+assert_checktrue((b23 | b34) == b234);
+assert_checktrue((b23 | b123) == b123);
+assert_checktrue((b23 | b134) == b1234);
+assert_checktrue((b23 | b234) == b234);
+assert_checktrue((b23 | b1234) == b1234);
+
+assert_checktrue((b24 | b24) == b24);
+assert_checktrue((b24 | b34) == b234);
+assert_checktrue((b24 | b123) == b1234);
+assert_checktrue((b24 | b134) == b1234);
+assert_checktrue((b24 | b234) == b234);
+assert_checktrue((b24 | b1234) == b1234);
+
+assert_checktrue((b34 | b34) == b34);
+assert_checktrue((b34 | b123) == b1234);
+assert_checktrue((b34 | b134) == b134);
+assert_checktrue((b34 | b234) == b234);
+assert_checktrue((b34 | b1234) == b1234);
+
+assert_checktrue((b123 | b123) == b123);
+assert_checktrue((b123 | b134) == b1234);
+assert_checktrue((b123 | b234) == b1234);
+assert_checktrue((b123 | b1234) == b1234);
+
+assert_checktrue((b134 | b134) == b134);
+assert_checktrue((b134 | b234) == b1234);
+assert_checktrue((b134 | b1234) == b1234);
+
+assert_checktrue((b234 | b234) == b234);
+assert_checktrue((b234 | b1234) == b1234);
+
+assert_checktrue((b1234 | b1234) == b1234);
+
+//scalar AND scalar in operation
+assert_checktrue((b0 & b0) == b0);
+assert_checktrue((b0 & b1) == b0);
+assert_checktrue((b0 & b2) == b0);
+assert_checktrue((b0 & b3) == b0);
+assert_checktrue((b0 & b4) == b0);
+assert_checktrue((b0 & b12) == b0);
+assert_checktrue((b0 & b13) == b0);
+assert_checktrue((b0 & b14) == b0);
+assert_checktrue((b0 & b23) == b0);
+assert_checktrue((b0 & b24) == b0);
+assert_checktrue((b0 & b34) == b0);
+assert_checktrue((b0 & b123) == b0);
+assert_checktrue((b0 & b134) == b0);
+assert_checktrue((b0 & b234) == b0);
+assert_checktrue((b0 & b1234) == b0);
+
+assert_checktrue((b1 & b1) == b1);
+assert_checktrue((b1 & b2) == b0);
+assert_checktrue((b1 & b3) == b0);
+assert_checktrue((b1 & b4) == b0);
+assert_checktrue((b1 & b12) == b1);
+assert_checktrue((b1 & b13) == b1);
+assert_checktrue((b1 & b14) == b1);
+assert_checktrue((b1 & b23) == b0);
+assert_checktrue((b1 & b24) == b0);
+assert_checktrue((b1 & b34) == b0);
+assert_checktrue((b1 & b123) == b1);
+assert_checktrue((b1 & b134) == b1);
+assert_checktrue((b1 & b234) == b0);
+assert_checktrue((b1 & b1234) == b1);
+
+assert_checktrue((b2 & b2) == b2);
+assert_checktrue((b2 & b3) == b0);
+assert_checktrue((b2 & b4) == b0);
+assert_checktrue((b2 & b12) == b2);
+assert_checktrue((b2 & b13) == b0);
+assert_checktrue((b2 & b14) == b0);
+assert_checktrue((b2 & b23) == b2);
+assert_checktrue((b2 & b24) == b2);
+assert_checktrue((b2 & b34) == b0);
+assert_checktrue((b2 & b123) == b2);
+assert_checktrue((b2 & b134) == b0);
+assert_checktrue((b2 & b234) == b2);
+assert_checktrue((b2 & b1234) == b2);
+
+assert_checktrue((b3 & b3) == b3);
+assert_checktrue((b3 & b4) == b0);
+assert_checktrue((b3 & b12) == b0);
+assert_checktrue((b3 & b13) == b3);
+assert_checktrue((b3 & b14) == b0);
+assert_checktrue((b3 & b23) == b3);
+assert_checktrue((b3 & b24) == b0);
+assert_checktrue((b3 & b34) == b3);
+assert_checktrue((b3 & b123) == b3);
+assert_checktrue((b3 & b134) == b3);
+assert_checktrue((b3 & b234) == b3);
+assert_checktrue((b3 & b1234) == b3);
+
+assert_checktrue((b4 & b4) == b4);
+assert_checktrue((b4 & b12) == b0);
+assert_checktrue((b4 & b13) == b0);
+assert_checktrue((b4 & b14) == b4);
+assert_checktrue((b4 & b23) == b0);
+assert_checktrue((b4 & b24) == b4);
+assert_checktrue((b4 & b34) == b4);
+assert_checktrue((b4 & b123) == b0);
+assert_checktrue((b4 & b134) == b4);
+assert_checktrue((b4 & b234) == b4);
+assert_checktrue((b4 & b1234) == b4);
+
+assert_checktrue((b12 & b12) == b12);
+assert_checktrue((b12 & b13) == b1);
+assert_checktrue((b12 & b14) == b1);
+assert_checktrue((b12 & b23) == b2);
+assert_checktrue((b12 & b24) == b2);
+assert_checktrue((b12 & b34) == b0);
+assert_checktrue((b12 & b123) == b12);
+assert_checktrue((b12 & b134) == b1);
+assert_checktrue((b12 & b234) == b2);
+assert_checktrue((b12 & b1234) == b12);
+
+assert_checktrue((b13 & b13) == b13);
+assert_checktrue((b13 & b14) == b1);
+assert_checktrue((b13 & b23) == b3);
+assert_checktrue((b13 & b24) == b0);
+assert_checktrue((b13 & b34) == b3);
+assert_checktrue((b13 & b123) == b13);
+assert_checktrue((b13 & b134) == b13);
+assert_checktrue((b13 & b234) == b3);
+assert_checktrue((b13 & b1234) == b13);
+
+assert_checktrue((b14 & b14) == b14);
+assert_checktrue((b14 & b23) == b0);
+assert_checktrue((b14 & b24) == b4);
+assert_checktrue((b14 & b34) == b4);
+assert_checktrue((b14 & b123) == b1);
+assert_checktrue((b14 & b134) == b14);
+assert_checktrue((b14 & b234) == b4);
+assert_checktrue((b14 & b1234) == b14);
+
+assert_checktrue((b23 & b23) == b23);
+assert_checktrue((b23 & b24) == b2);
+assert_checktrue((b23 & b34) == b3);
+assert_checktrue((b23 & b123) == b23);
+assert_checktrue((b23 & b134) == b3);
+assert_checktrue((b23 & b234) == b23);
+assert_checktrue((b23 & b1234) == b23);
+
+assert_checktrue((b24 & b24) == b24);
+assert_checktrue((b24 & b34) == b4);
+assert_checktrue((b24 & b123) == b2);
+assert_checktrue((b24 & b134) == b4);
+assert_checktrue((b24 & b234) == b24);
+assert_checktrue((b24 & b1234) == b24);
+
+assert_checktrue((b34 & b34) == b34);
+assert_checktrue((b34 & b123) == b3);
+assert_checktrue((b34 & b134) == b34);
+assert_checktrue((b34 & b234) == b34);
+assert_checktrue((b34 & b1234) == b34);
+
+assert_checktrue((b123 & b123) == b123);
+assert_checktrue((b123 & b134) == b13);
+assert_checktrue((b123 & b234) == b23);
+assert_checktrue((b123 & b1234) == b123);
+
+assert_checktrue((b134 & b134) == b134);
+assert_checktrue((b134 & b234) == b34);
+assert_checktrue((b134 & b1234) == b134);
+
+assert_checktrue((b234 & b234) == b234);
+assert_checktrue((b234 & b1234) == b234);
+
+assert_checktrue((b1234 & b1234) == b1234);
+
+//scalar OR scalar in condition
+if b0 | b0 then pause; end
+
+//others case returns true and we do not want to test with '=='
+
+//scalar AND scalar in condition
+if b0 & b0 then pause; end
+if b0 & b1 then pause; end
+if b0 & b2 then pause; end
+if b0 & b3 then pause; end
+if b0 & b4 then pause; end
+if b0 & b12 then pause; end
+if b0 & b13 then pause; end
+if b0 & b14 then pause; end
+if b0 & b23 then pause; end
+if b0 & b24 then pause; end
+if b0 & b34 then pause; end
+if b0 & b123 then pause; end
+if b0 & b124 then pause; end
+if b0 & b134 then pause; end
+if b0 & b234 then pause; end
+if b0 & b1234 then pause; end
+//others case returns true and we do not want to test with '=='
diff --git a/scilab/modules/ast/tests/unit_tests/power.dia.ref b/scilab/modules/ast/tests/unit_tests/power.dia.ref
new file mode 100644 (file)
index 0000000..4fee86e
--- /dev/null
@@ -0,0 +1,74 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+pR = 1 + 2*%s*%s + 3*%s*%s*%s;
+pC = pR + pR*%i;
+PR = [pR,pR;pR,pR];
+PC = [pC,pC;pC,pC];
+
+
+//DOUBLE
+
+// double ^ double
+
+//r ^ r
+assert_checkalmostequal(r ^ r, 4);
+//r ^ c
+assert_checkalmostequal(r ^ c, 0.3669139494866+%i*1.9660554808225);
+//c ^ r
+assert_checkequal(c ^ r, -3+%i*4);
+//c ^ c
+assert_checkalmostequal(c ^ c, -0.2225171568018+%i*0.1007091311361);
+
+// DOUBLE ^ double
+//R ^ r
+assert_checkequal(R ^ r, [7,10;15,22]);
+//R ^ c
+assert_checkalmostequal(R ^ c, [-1.251952645008-%i*0.28072150763376,-1.825029337717-%i*0.410062225781;-2.7375440065755-%i*0.61509333867145,-3.9894966515835-%i*0.89581484630521]);
+//C ^ r
+assert_checkequal(C ^ r, [-21+%i*28,-30+%i*40;-45+%i*60,-66+%i*88]);
+//C ^ c
+assert_checkalmostequal(C ^ c, [-27.051150278703-%i*25.062777693306, 12.961689280285+%i*11.342742208568; 19.442533920428+%i*17.014113312852,-7.6086163582745-%i*8.048664380454]);
+
+// double ^ DOUBLE
+//r ^ R
+assert_checkequal(r ^ R, [2,4;8,16]);
+//r ^ C
+assert_checkalmostequal(r ^ C, [ 0.3669139494866+%i*1.9660554808225,-3.7307483073443+%i*1.4427463627567;-4.2053829899227-%i*6.8054943911569, 11.836965865504-%i*10.765047101564]);
+//c ^ R
+assert_checkequal(c ^ R, [ 1+%i*2,-3+%i*4;-11-%i*2,-7-%i*24]);
+//c ^ C
+assert_checkalmostequal(c ^ C, [-0.2225171568018+%i*0.1007091311361, 0.0393715559770-%i*0.0448190190488;-0.0042471622281+%i*0.0139380758833,-0.0004586250484-%i*0.0035291890346]);
+
+
+//POLY
+
+//poly ^ double
+
+//pR ^ r
+assert_checkequal(pR ^ r, 1+4*%s^2+6*%s^3+4*%s^4+12*%s^5+9*%s^6);
+//pC ^ r
+assert_checkequal(pC ^ r, %i*2+(%i*8)*%s^2+(%i*12)*%s^3+(%i*8)*%s^4+(%i*24)*%s^5+(%i*18)*%s^6);
+
+//poly ^ DOUBLE
+
+//pR ^ R
+assert_checkequal(pR ^ R, [1+2*%s^2+3*%s^3,1+4*%s^2+6*%s^3+4*%s^4+12*%s^5+9*%s^6;1+6*%s^2+9*%s^3+12*%s^4+36*%s^5+35*%s^6+36*%s^7+54*%s^8+27*%s^9,1+8*%s^2+12*%s^3+24*%s^4+72*%s^5+86*%s^6+144*%s^7+232*%s^8+204*%s^9+216*%s^10+216*%s^11+81*%s^12]);
+//pC ^ R
+assert_checkequal(pC ^ R, [1+%i+(2+%i*2)*%s^2+(3+%i*3)*%s^3,%i*2+(%i*8)*%s^2+(%i*12)*%s^3+(%i*8)*%s^4+(%i*24)*%s^5+(%i*18)*%s^6;-2+%i*2+(-12+%i*12)*%s^2+(-18+%i*18)*%s^3+(-24+%i*24)*%s^4+(-72+%i*72)*%s^5+(-70+%i*70)*%s^6+(-72+%i*72)*%s^7+(-108+%i*108)*%s^8+(-54+%i*54)*%s^9,-4-32*%s^2-48*%s^3-96*%s^4-288*%s^5-344*%s^6-576*%s^7-928*%s^8-816*%s^9-864*%s^10-864*%s^11-324*%s^12]);
+
+//POLY ^ double
+//PR ^ r
+assert_checkequal(PR ^ r, [2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6,2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6;2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6,2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6]);
+//PC ^ r
+assert_checkequal(PC ^ r, [%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6,%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6;%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6,%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6]);
diff --git a/scilab/modules/ast/tests/unit_tests/power.tst b/scilab/modules/ast/tests/unit_tests/power.tst
new file mode 100644 (file)
index 0000000..4fee86e
--- /dev/null
@@ -0,0 +1,74 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+c = 1 + 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+pR = 1 + 2*%s*%s + 3*%s*%s*%s;
+pC = pR + pR*%i;
+PR = [pR,pR;pR,pR];
+PC = [pC,pC;pC,pC];
+
+
+//DOUBLE
+
+// double ^ double
+
+//r ^ r
+assert_checkalmostequal(r ^ r, 4);
+//r ^ c
+assert_checkalmostequal(r ^ c, 0.3669139494866+%i*1.9660554808225);
+//c ^ r
+assert_checkequal(c ^ r, -3+%i*4);
+//c ^ c
+assert_checkalmostequal(c ^ c, -0.2225171568018+%i*0.1007091311361);
+
+// DOUBLE ^ double
+//R ^ r
+assert_checkequal(R ^ r, [7,10;15,22]);
+//R ^ c
+assert_checkalmostequal(R ^ c, [-1.251952645008-%i*0.28072150763376,-1.825029337717-%i*0.410062225781;-2.7375440065755-%i*0.61509333867145,-3.9894966515835-%i*0.89581484630521]);
+//C ^ r
+assert_checkequal(C ^ r, [-21+%i*28,-30+%i*40;-45+%i*60,-66+%i*88]);
+//C ^ c
+assert_checkalmostequal(C ^ c, [-27.051150278703-%i*25.062777693306, 12.961689280285+%i*11.342742208568; 19.442533920428+%i*17.014113312852,-7.6086163582745-%i*8.048664380454]);
+
+// double ^ DOUBLE
+//r ^ R
+assert_checkequal(r ^ R, [2,4;8,16]);
+//r ^ C
+assert_checkalmostequal(r ^ C, [ 0.3669139494866+%i*1.9660554808225,-3.7307483073443+%i*1.4427463627567;-4.2053829899227-%i*6.8054943911569, 11.836965865504-%i*10.765047101564]);
+//c ^ R
+assert_checkequal(c ^ R, [ 1+%i*2,-3+%i*4;-11-%i*2,-7-%i*24]);
+//c ^ C
+assert_checkalmostequal(c ^ C, [-0.2225171568018+%i*0.1007091311361, 0.0393715559770-%i*0.0448190190488;-0.0042471622281+%i*0.0139380758833,-0.0004586250484-%i*0.0035291890346]);
+
+
+//POLY
+
+//poly ^ double
+
+//pR ^ r
+assert_checkequal(pR ^ r, 1+4*%s^2+6*%s^3+4*%s^4+12*%s^5+9*%s^6);
+//pC ^ r
+assert_checkequal(pC ^ r, %i*2+(%i*8)*%s^2+(%i*12)*%s^3+(%i*8)*%s^4+(%i*24)*%s^5+(%i*18)*%s^6);
+
+//poly ^ DOUBLE
+
+//pR ^ R
+assert_checkequal(pR ^ R, [1+2*%s^2+3*%s^3,1+4*%s^2+6*%s^3+4*%s^4+12*%s^5+9*%s^6;1+6*%s^2+9*%s^3+12*%s^4+36*%s^5+35*%s^6+36*%s^7+54*%s^8+27*%s^9,1+8*%s^2+12*%s^3+24*%s^4+72*%s^5+86*%s^6+144*%s^7+232*%s^8+204*%s^9+216*%s^10+216*%s^11+81*%s^12]);
+//pC ^ R
+assert_checkequal(pC ^ R, [1+%i+(2+%i*2)*%s^2+(3+%i*3)*%s^3,%i*2+(%i*8)*%s^2+(%i*12)*%s^3+(%i*8)*%s^4+(%i*24)*%s^5+(%i*18)*%s^6;-2+%i*2+(-12+%i*12)*%s^2+(-18+%i*18)*%s^3+(-24+%i*24)*%s^4+(-72+%i*72)*%s^5+(-70+%i*70)*%s^6+(-72+%i*72)*%s^7+(-108+%i*108)*%s^8+(-54+%i*54)*%s^9,-4-32*%s^2-48*%s^3-96*%s^4-288*%s^5-344*%s^6-576*%s^7-928*%s^8-816*%s^9-864*%s^10-864*%s^11-324*%s^12]);
+
+//POLY ^ double
+//PR ^ r
+assert_checkequal(PR ^ r, [2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6,2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6;2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6,2+8*%s^2+12*%s^3+8*%s^4+24*%s^5+18*%s^6]);
+//PC ^ r
+assert_checkequal(PC ^ r, [%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6,%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6;%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6,%i*4+(%i*16)*%s^2+(%i*24)*%s^3+(%i*16)*%s^4+(%i*48)*%s^5+(%i*36)*%s^6]);
diff --git a/scilab/modules/ast/tests/unit_tests/substraction.dia.ref b/scilab/modules/ast/tests/unit_tests/substraction.dia.ref
new file mode 100644 (file)
index 0000000..5687ddf
--- /dev/null
@@ -0,0 +1,87 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 - 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+// double - double
+//r - r
+assert_checkequal(r - r, 0);
+//r - c
+assert_checkequal(r - c, 1+%i*2);
+//c - r
+assert_checkequal(c - r, -1-%i*2);
+//c - c
+assert_checkequal(c - c, 0*%i);
+//double - DOUBLE
+//r - R
+assert_checkequal(r - R, [1,0;-1,-2]);
+rR3ref(:,:,1) = [1,0;-1,-2];
+rR3ref(:,:,2) = [1,-1;0,-2] ;
+assert_checkequal(r - R3, rR3ref);
+//r - C
+assert_checkequal(r - C, [ 1-%i*2,-%i*4;-1-%i*6,-2-%i*8]);
+rC3ref(:,:,1) = [ 1-%i*2,-%i*4;-1-%i*6,-2-%i*8];
+rC3ref(:,:,2) = [ 1+%i*2,-1+%i*6;%i*4,-2+%i*8];
+assert_checkequal(r - C3, rC3ref);
+//c - R
+assert_checkequal(c - R, [-%i*2,-1-%i*2;-2-%i*2,-3-%i*2]);
+cR3ref(:,:,1) = [-%i*2,-1-%i*2;-2-%i*2,-3-%i*2];
+cR3ref(:,:,2) = [-%i*2,-2-%i*2;-1-%i*2,-3-%i*2];
+assert_checkequal(c - R3, cR3ref);
+//c - C
+assert_checkequal(c - C, [-%i*4,-1-%i*6;-2-%i*8,-3-%i*10]);
+cC3ref(:,:,1) = [-%i*4,-1-%i*6;-2-%i*8,-3-%i*10];
+cC3ref(:,:,2) = [0,-2+%i*4;-1+%i*2,-3+%i*6];
+assert_checkequal(c - C3, cC3ref);
+//DOUBLE - double
+//R - r
+assert_checkequal(R - r, [-1,0;1,2]);
+R3rref(:,:,1) = [-1,0;1,2];
+R3rref(:,:,2) = [-1,1;0,2];
+assert_checkequal(R3 - r, R3rref);
+//R - c
+assert_checkequal(R - c, [%i*2, 1+%i*2; 2+%i*2, 3+%i*2]);
+R3cref(:,:,1) = [%i*2, 1+%i*2; 2+%i*2, 3+%i*2];
+R3cref(:,:,2) = [%i*2, 2+%i*2; 1+%i*2, 3+%i*2];
+assert_checkequal(R3 - c, R3cref);
+//C - r
+assert_checkequal(C - r, [-1+%i*2,%i*4; 1+%i*6, 2+%i*8]);
+C3rref(:,:,1) = [-1+%i*2,%i*4; 1+%i*6, 2+%i*8];
+C3rref(:,:,2) = [-1-%i*2, 1-%i*6;-%i*4, 2-%i*8];
+assert_checkequal(C3 - r, C3rref);
+//c - c
+assert_checkequal(C - c, [%i*4, 1+%i*6; 2+%i*8, 3+%i*10]);
+C3cref(:,:,1) = [%i*4, 1+%i*6; 2+%i*8, 3+%i*10];
+C3cref(:,:,2) = [0, 2-%i*4; 1-%i*2, 3-%i*6];
+assert_checkequal(C3 - c, C3cref);
+//DOUBLE - DOUBLE
+//R - R
+assert_checkequal(R - R, [0,0;0,0]);
+R3R3ref(:,:,1) = [0,0;0,0];
+R3R3ref(:,:,2) = [0,0;0,0];
+assert_checkequal(R3 - R3, R3R3ref);
+//R - C
+assert_checkequal(R - C, [-%i*2,-%i*4;-%i*6,-%i*8]);
+R3C3ref(:,:,1) = [-%i*2,-%i*4;-%i*6,-%i*8];
+R3C3ref(:,:,2) = [%i*2,%i*6;%i*4,%i*8];
+assert_checkequal(R3 - C3, R3C3ref);
+//C - R
+assert_checkequal(C - R, [%i*2,%i*4;%i*6,%i*8]);
+C3R3ref(:,:,1) = [%i*2,%i*4;%i*6,%i*8];
+C3R3ref(:,:,2) = [-%i*2,-%i*6;-%i*4,-%i*8];
+assert_checkequal(C3 - R3, C3R3ref);
+//C - C
+assert_checkequal(C - C, [0,0;0,0]*%i);
+C3C3ref(:,:,1) = [0,0;0,0];
+C3C3ref(:,:,2) = [0,0;0,0];
+assert_checkequal(C3 - C3, C3C3ref*%i);
diff --git a/scilab/modules/ast/tests/unit_tests/substraction.tst b/scilab/modules/ast/tests/unit_tests/substraction.tst
new file mode 100644 (file)
index 0000000..f016b12
--- /dev/null
@@ -0,0 +1,99 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - DIGITEO - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+r = 2;
+R = [1,2;3,4];
+R3(:,:,1) = R;
+R3(:,:,2) = R';
+c = 1 - 2*%i;
+C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
+C3(:,:,1) = C;
+C3(:,:,2) = C';
+
+
+// double - double
+
+//r - r
+assert_checkequal(r - r, 0);
+//r - c
+assert_checkequal(r - c, 1+%i*2);
+//c - r
+assert_checkequal(c - r, -1-%i*2);
+//c - c
+assert_checkequal(c - c, 0*%i);
+
+
+//double - DOUBLE
+
+//r - R
+assert_checkequal(r - R, [1,0;-1,-2]);
+rR3ref(:,:,1) = [1,0;-1,-2];
+rR3ref(:,:,2) = [1,-1;0,-2] ;
+assert_checkequal(r - R3, rR3ref);
+//r - C
+assert_checkequal(r - C, [ 1-%i*2,-%i*4;-1-%i*6,-2-%i*8]);
+rC3ref(:,:,1) = [ 1-%i*2,-%i*4;-1-%i*6,-2-%i*8];
+rC3ref(:,:,2) = [ 1+%i*2,-1+%i*6;%i*4,-2+%i*8];
+assert_checkequal(r - C3, rC3ref);
+//c - R
+assert_checkequal(c - R, [-%i*2,-1-%i*2;-2-%i*2,-3-%i*2]);
+cR3ref(:,:,1) = [-%i*2,-1-%i*2;-2-%i*2,-3-%i*2];
+cR3ref(:,:,2) = [-%i*2,-2-%i*2;-1-%i*2,-3-%i*2];
+assert_checkequal(c - R3, cR3ref);
+//c - C
+assert_checkequal(c - C, [-%i*4,-1-%i*6;-2-%i*8,-3-%i*10]);
+cC3ref(:,:,1) = [-%i*4,-1-%i*6;-2-%i*8,-3-%i*10];
+cC3ref(:,:,2) = [0,-2+%i*4;-1+%i*2,-3+%i*6];
+assert_checkequal(c - C3, cC3ref);
+
+
+//DOUBLE - double
+
+//R - r
+assert_checkequal(R - r, [-1,0;1,2]);
+R3rref(:,:,1) = [-1,0;1,2];
+R3rref(:,:,2) = [-1,1;0,2];
+assert_checkequal(R3 - r, R3rref);
+//R - c
+assert_checkequal(R - c, [%i*2, 1+%i*2; 2+%i*2, 3+%i*2]);
+R3cref(:,:,1) = [%i*2, 1+%i*2; 2+%i*2, 3+%i*2];
+R3cref(:,:,2) = [%i*2, 2+%i*2; 1+%i*2, 3+%i*2];
+assert_checkequal(R3 - c, R3cref);
+//C - r
+assert_checkequal(C - r, [-1+%i*2,%i*4; 1+%i*6, 2+%i*8]);
+C3rref(:,:,1) = [-1+%i*2,%i*4; 1+%i*6, 2+%i*8];
+C3rref(:,:,2) = [-1-%i*2, 1-%i*6;-%i*4, 2-%i*8];
+assert_checkequal(C3 - r, C3rref);
+//c - c
+assert_checkequal(C - c, [%i*4, 1+%i*6; 2+%i*8, 3+%i*10]);
+C3cref(:,:,1) = [%i*4, 1+%i*6; 2+%i*8, 3+%i*10];
+C3cref(:,:,2) = [0, 2-%i*4; 1-%i*2, 3-%i*6];
+assert_checkequal(C3 - c, C3cref);
+
+//DOUBLE - DOUBLE
+//R - R
+assert_checkequal(R - R, [0,0;0,0]);
+R3R3ref(:,:,1) = [0,0;0,0];
+R3R3ref(:,:,2) = [0,0;0,0];
+assert_checkequal(R3 - R3, R3R3ref);
+//R - C
+assert_checkequal(R - C, [-%i*2,-%i*4;-%i*6,-%i*8]);
+R3C3ref(:,:,1) = [-%i*2,-%i*4;-%i*6,-%i*8];
+R3C3ref(:,:,2) = [%i*2,%i*6;%i*4,%i*8];
+assert_checkequal(R3 - C3, R3C3ref);
+//C - R
+assert_checkequal(C - R, [%i*2,%i*4;%i*6,%i*8]);
+C3R3ref(:,:,1) = [%i*2,%i*4;%i*6,%i*8];
+C3R3ref(:,:,2) = [-%i*2,-%i*6;-%i*4,-%i*8];
+assert_checkequal(C3 - R3, C3R3ref);
+//C - C
+assert_checkequal(C - C, [0,0;0,0]*%i);
+C3C3ref(:,:,1) = [0,0;0,0];
+C3C3ref(:,:,2) = [0,0;0,0];
+assert_checkequal(C3 - C3, C3C3ref*%i);
diff --git a/scilab/modules/ast/tests/unit_tests/transposition.dia.ref b/scilab/modules/ast/tests/unit_tests/transposition.dia.ref
new file mode 100644 (file)
index 0000000..f2f114e
--- /dev/null
@@ -0,0 +1,97 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+S = 123;
+C = [1 2;3 4];
+R = [1 2 3;4 5 6];
+SC = 1+2*%i
+SC  = 
+    1. + 2.i
+CC = C + %i * [5 6;7 8];
+RC = R + %i * [7 8 9;10 11 12];
+SB = %F;
+CB = [%T %T;%F %T];
+RB = [%T %T %F;%T %F %T];
+X = poly(0, "x");
+CP = C + C * X + C * X ^ 2;
+RP = R + R * X + R * X ^ 2;
+CCP = CC + CC * X + CC * X ^ 2;
+RCP = RC + RC * X + RC * X ^ 2;
+assert_checkequal([], []')
+ ans  =
+  T
+assert_checkequal([], [].')
+ ans  =
+  T
+assert_checkequal(eye(), eye()')
+ ans  =
+  T
+assert_checkequal(eye(), eye().')
+ ans  =
+  T
+assert_checkequal(S, S')
+ ans  =
+  T
+assert_checkequal(S, S.')
+ ans  =
+  T
+assert_checkequal(SB, SB')
+ ans  =
+  T
+assert_checkequal(SB, SB.')
+ ans  =
+  T
+assert_checkequal(SC', 1 - 2 * %i)
+ ans  =
+  T
+assert_checkequal(SC, SC.')
+ ans  =
+  T
+assert_checkequal(C', [1 3;2 4])
+ ans  =
+  T
+assert_checkequal(C.', [1 3;2 4])
+ ans  =
+  T
+assert_checkequal(CC', [1 3;2 4] - %i * [5 7;6 8])
+ ans  =
+  T
+assert_checkequal(CC.', [1 3;2 4] + %i * [5 7;6 8])
+ ans  =
+  T
+assert_checkequal(R', [1 4;2 5;3 6])
+ ans  =
+  T
+assert_checkequal(R.', [1 4;2 5;3 6])
+ ans  =
+  T
+assert_checkequal(RC', [1 4;2 5;3 6] - %i * [7 10;8 11;9 12])
+ ans  =
+  T
+assert_checkequal(RC.', [1 4;2 5;3 6] + %i * [7 10;8 11;9 12])
+ ans  =
+  T
+assert_checkequal(string(C)', string([1 3;2 4]))
+ ans  =
+  T
+assert_checkequal(string(C).', string([1 3;2 4]))
+ ans  =
+  T
+assert_checkequal(string(R)', string([1 4;2 5;3 6]))
+ ans  =
+  T
+assert_checkequal(string(R).', string([1 4;2 5;3 6]))
+ ans  =
+  T
+assert_checkequal(sparse(C)', sparse([1 3;2 4]))
+assert_checkequal : Échec de l'assertion : attendu = [1 ...], cependant calculé = [1 ...]
+at line    29 of function assert_generror called by :
+assert_generror(errmsg)at line   116 of function assert_checkequal called by :
+assert_checkequal((sparse(C))', sparse([1, 3;
+    2, 4
+    ]))
+at line    63 of exec file called by :
diff --git a/scilab/modules/ast/tests/unit_tests/transposition.tst b/scilab/modules/ast/tests/unit_tests/transposition.tst
new file mode 100644 (file)
index 0000000..c362ec4
--- /dev/null
@@ -0,0 +1,121 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+S = 123;
+C = [1 2;3 4];
+R = [1 2 3;4 5 6];
+SC = 1+2*%i
+CC = C + %i * [5 6;7 8];
+RC = R + %i * [7 8 9;10 11 12];
+SB = %F;
+CB = [%T %T;%F %T];
+RB = [%T %T %F;%T %F %T];
+X = poly(0, "x");
+CP = C + C * X + C * X ^ 2;
+RP = R + R * X + R * X ^ 2;
+CCP = CC + CC * X + CC * X ^ 2;
+RCP = RC + RC * X + RC * X ^ 2;
+
+assert_checkequal([], []')
+assert_checkequal([], [].')
+assert_checkequal(eye(), eye()')
+assert_checkequal(eye(), eye().')
+assert_checkequal(S, S')
+assert_checkequal(S, S.')
+assert_checkequal(SB, SB')
+assert_checkequal(SB, SB.')
+assert_checkequal(SC', 1 - 2 * %i)
+assert_checkequal(SC, SC.')
+
+assert_checkequal(C', [1 3;2 4])
+assert_checkequal(C.', [1 3;2 4])
+assert_checkequal(CC', [1 3;2 4] - %i * [5 7;6 8])
+assert_checkequal(CC.', [1 3;2 4] + %i * [5 7;6 8])
+assert_checkequal(R', [1 4;2 5;3 6])
+assert_checkequal(R.', [1 4;2 5;3 6])
+assert_checkequal(RC', [1 4;2 5;3 6] - %i * [7 10;8 11;9 12])
+assert_checkequal(RC.', [1 4;2 5;3 6] + %i * [7 10;8 11;9 12])
+
+assert_checkequal(string(C)', string([1 3;2 4]))
+assert_checkequal(string(C).', string([1 3;2 4]))
+assert_checkequal(string(R)', string([1 4;2 5;3 6]))
+assert_checkequal(string(R).', string([1 4;2 5;3 6]))
+
+assert_checkequal(sparse(C)', sparse([1 3;2 4]))
+assert_checkequal(sparse(C).', sparse([1 3;2 4]))
+assert_checkequal(sparse(CC)', sparse([1 3;2 4] - %i * [5 7;6 8]))
+assert_checkequal(sparse(CC).', sparse([1 3;2 4] + %i * [5 7;6 8]))
+assert_checkequal(sparse(R)', sparse([1 4;2 5;3 6]))
+assert_checkequal(sparse(R).', sparse([1 4;2 5;3 6]))
+assert_checkequal(sparse(RC)', sparse([1 4;2 5;3 6] - %i * [7 10;8 11;9 12]))
+assert_checkequal(sparse(RC).', sparse([1 4;2 5;3 6] + %i * [7 10;8 11;9 12]))
+
+assert_checkequal(CB', [%T %F;%T %T])
+assert_checkequal(CB.', [%T %F;%T %T])
+assert_checkequal(RB', [%T %T;%T %F;%F %T])
+assert_checkequal(RB.', [%T %T;%T %F;%F %T])
+assert_checkequal(sparse(CB)', sparse([%T %F;%T %T]))
+assert_checkequal(sparse(CB).', sparse([%T %F;%T %T]))
+assert_checkequal(sparse(RB)', sparse([%T %T;%T %F;%F %T]))
+assert_checkequal(sparse(RB).', sparse([%T %T;%T %F;%F %T]))
+
+assert_checkequal(int8(S)', int8(S))
+assert_checkequal(int8(C)', int8([1 3;2 4]))
+assert_checkequal(int8(C).', int8([1 3;2 4]))
+assert_checkequal(int8(R)', int8([1 4;2 5;3 6]))
+assert_checkequal(int8(R).', int8([1 4;2 5;3 6]))
+assert_checkequal(int16(S)', int16(S))
+assert_checkequal(int16(C)', int16([1 3;2 4]))
+assert_checkequal(int16(C).', int16([1 3;2 4]))
+assert_checkequal(int16(R)', int16([1 4;2 5;3 6]))
+assert_checkequal(int16(R).', int16([1 4;2 5;3 6]))
+assert_checkequal(int32(S)', int32(S))
+assert_checkequal(int32(C)', int32([1 3;2 4]))
+assert_checkequal(int32(C).', int32([1 3;2 4]))
+assert_checkequal(int32(R)', int32([1 4;2 5;3 6]))
+assert_checkequal(int32(R).', int32([1 4;2 5;3 6]))
+assert_checkequal(int64(S)', int64(S))
+assert_checkequal(int64(C)', int64([1 3;2 4]))
+assert_checkequal(int64(C).', int64([1 3;2 4]))
+assert_checkequal(int64(R)', int64([1 4;2 5;3 6]))
+assert_checkequal(int64(R).', int64([1 4;2 5;3 6]))
+assert_checkequal(uint8(S)', uint8(S))
+assert_checkequal(uint8(C)', uint8([1 3;2 4]))
+assert_checkequal(uint8(C).', uint8([1 3;2 4]))
+assert_checkequal(uint8(R)', uint8([1 4;2 5;3 6]))
+assert_checkequal(uint8(R).', uint8([1 4;2 5;3 6]))
+assert_checkequal(uint16(S)', uint16(S))
+assert_checkequal(uint16(C)', uint16([1 3;2 4]))
+assert_checkequal(uint16(C).', uint16([1 3;2 4]))
+assert_checkequal(uint16(R)', uint16([1 4;2 5;3 6]))
+assert_checkequal(uint16(R).', uint16([1 4;2 5;3 6]))
+assert_checkequal(uint32(S)', uint32(S))
+assert_checkequal(uint32(C)', uint32([1 3;2 4]))
+assert_checkequal(uint32(C).', uint32([1 3;2 4]))
+assert_checkequal(uint32(R)', uint32([1 4;2 5;3 6]))
+assert_checkequal(uint32(R).', uint32([1 4;2 5;3 6]))
+assert_checkequal(uint64(S)', uint64(S))
+assert_checkequal(uint64(C)', uint64([1 3;2 4]))
+assert_checkequal(uint64(C).', uint64([1 3;2 4]))
+assert_checkequal(uint64(R)', uint64([1 4;2 5;3 6]))
+assert_checkequal(uint64(R).', uint64([1 4;2 5;3 6]))
+
+assert_checkequal(X', X)
+assert_checkequal(X.', X)
+assert_checkequal(CP', C' * (1 + X + X ^ 2))
+assert_checkequal(CP.', C.' * (1 + X + X ^ 2))
+assert_checkequal(RP', R' * (1 + X + X ^ 2))
+assert_checkequal(RP.', R.' * (1 + X + X ^ 2))
+assert_checkequal(CCP', CC' * (1 + X + X ^ 2))
+assert_checkequal(CCP.', CC.' * (1 + X + X ^ 2))
+assert_checkequal(RCP', RC' * (1 + X + X ^ 2))
+assert_checkequal(RCP.', RC.' * (1 + X + X ^ 2))
+
+assert_checkequal((1:5)', [1;2;3;4;5]);
+assert_checkequal((1:2:10)', [1;3;5;7;9]);
\ No newline at end of file
diff --git a/scilab/modules/ast/tests/unit_tests/uminus.dia.ref b/scilab/modules/ast/tests/unit_tests/uminus.dia.ref
new file mode 100644 (file)
index 0000000..0615484
--- /dev/null
@@ -0,0 +1,14 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+// <-- JVM NOT MANDATORY -->
+assert_checkequal([1, -1], [1 -1]);
+assert_checkequal(0, [1 - 1]);
+a = 42;
+assert_checkequal([1, -a], [1 -a]);
+assert_checkequal([(1 - a)], [1 - a]);
+assert_checkequal([1, - a + 2], [1 -(a - 2)]);
+assert_checkequal([(1 - a + 2)], [1 - a + 2]);
diff --git a/scilab/modules/ast/tests/unit_tests/uminus.tst b/scilab/modules/ast/tests/unit_tests/uminus.tst
new file mode 100644 (file)
index 0000000..bc3762f
--- /dev/null
@@ -0,0 +1,16 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- JVM NOT MANDATORY -->
+
+assert_checkequal([1, -1], [1 -1]);
+assert_checkequal(0, [1 - 1]);
+a = 42;
+assert_checkequal([1, -a], [1 -a]);
+assert_checkequal([(1 - a)], [1 - a]);
+assert_checkequal([1, - a + 2], [1 -(a - 2)]);
+assert_checkequal([(1 - a + 2)], [1 - a + 2]);