add macrovar test 11/11411/1
Antoine ELIAS [Fri, 26 Apr 2013 11:12:47 +0000 (13:12 +0200)]
Change-Id: I0082ab57eee16a37fc0f02db8eeb7f0ec0d2f41c

scilab/modules/functions/tests/unit_tests/macrovar.dia.ref [new file with mode: 0644]
scilab/modules/functions/tests/unit_tests/macrovar.tst [new file with mode: 0644]

diff --git a/scilab/modules/functions/tests/unit_tests/macrovar.dia.ref b/scilab/modules/functions/tests/unit_tests/macrovar.dia.ref
new file mode 100644 (file)
index 0000000..82abc8f
--- /dev/null
@@ -0,0 +1,71 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+funcprot(0);
+//1 in, 0 out
+ref = list("i1", [], [], [], []);
+function foo(i1)
+endfunction
+val = macrovar(foo);
+assert_checkequal(ref, val);
+//1 in, 1 out
+ref = list("i1", "o1", [], [], []);
+function o1 = foo(i1)
+    o1 = i1;
+endfunction
+val = macrovar(foo);
+assert_checkequal(ref, val);
+//n in, n out
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], [], [], []);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    o1 = i1 + i2;
+    o2 = i2 + i3;
+    o3 = i3 + i4;
+endfunction
+val = macrovar(foo);
+assert_checkequal(ref, val);
+//add local vars
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], [], [], ["l1";"l2";"l3"]);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    l1 = i1 + i2;
+    l2 = i2 + i3;
+    l3 = i3 + i4;
+    o1 = l1;
+    o2 = l2;
+    o3 = l3;
+endfunction
+val = macrovar(foo);
+assert_checkequal(ref, val);
+//add external vars
+e1 = 1;
+e2 = 2;
+e3 = 3;
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], ["e1";"e2";"e3"], [], ["l1";"l2";"l3"]);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    l1 = i1 + i2;
+    l2 = i2 + i3;
+    l3 = i3 + i4;
+    o1 = l1 + e1;
+    o2 = l2 + e2;
+    o3 = l3 + e3;
+endfunction
+val = macrovar(foo);
+assert_checkequal(ref, val);
+//add function calls
+e1 = 1;
+e2 = 2;
+e3 = 3;
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], ["e1";"e2";"e3"], ["cos";"sin";"tan"], ["l1";"l2";"l3"]);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    l1 = i1 + i2;
+    l2 = i2 + i3;
+    l3 = i3 + i4;
+    o1 = cos(l1 + e1);
+    o2 = sin(l2 + e2);
+    o3 = tan(l3 + e3);
+endfunction
+val = macrovar(foo);
+assert_checkequal(ref, val);
diff --git a/scilab/modules/functions/tests/unit_tests/macrovar.tst b/scilab/modules/functions/tests/unit_tests/macrovar.tst
new file mode 100644 (file)
index 0000000..7acd315
--- /dev/null
@@ -0,0 +1,86 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+funcprot(0);
+
+//1 in, 0 out
+ref = list("i1", [], [], [], []);
+function foo(i1)
+endfunction
+
+val = macrovar(foo);
+assert_checkequal(ref, val);
+
+//1 in, 1 out
+ref = list("i1", "o1", [], [], []);
+function o1 = foo(i1)
+    o1 = i1;
+endfunction
+
+val = macrovar(foo);
+assert_checkequal(ref, val);
+
+//n in, n out
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], [], [], []);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    o1 = i1 + i2;
+    o2 = i2 + i3;
+    o3 = i3 + i4;
+endfunction
+
+val = macrovar(foo);
+assert_checkequal(ref, val);
+
+//add local vars
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], [], [], ["l1";"l2";"l3"]);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    l1 = i1 + i2;
+    l2 = i2 + i3;
+    l3 = i3 + i4;
+    o1 = l1;
+    o2 = l2;
+    o3 = l3;
+endfunction
+
+val = macrovar(foo);
+assert_checkequal(ref, val);
+
+//add external vars
+e1 = 1;
+e2 = 2;
+e3 = 3;
+
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], ["e1";"e2";"e3"], [], ["l1";"l2";"l3"]);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    l1 = i1 + i2;
+    l2 = i2 + i3;
+    l3 = i3 + i4;
+    o1 = l1 + e1;
+    o2 = l2 + e2;
+    o3 = l3 + e3;
+endfunction
+
+val = macrovar(foo);
+assert_checkequal(ref, val);
+
+//add function calls
+e1 = 1;
+e2 = 2;
+e3 = 3;
+
+ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], ["e1";"e2";"e3"], ["cos";"sin";"tan"], ["l1";"l2";"l3"]);
+function [o1, o2, o3] = foo(i1, i2, i3, i4)
+    l1 = i1 + i2;
+    l2 = i2 + i3;
+    l3 = i3 + i4;
+    o1 = cos(l1 + e1);
+    o2 = sin(l2 + e2);
+    o3 = tan(l3 + e3);
+endfunction
+
+val = macrovar(foo);
+assert_checkequal(ref, val);