add macrovar test
[scilab.git] / scilab / modules / functions / tests / unit_tests / macrovar.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 funcprot(0);
8 //1 in, 0 out
9 ref = list("i1", [], [], [], []);
10 function foo(i1)
11 endfunction
12 val = macrovar(foo);
13 assert_checkequal(ref, val);
14 //1 in, 1 out
15 ref = list("i1", "o1", [], [], []);
16 function o1 = foo(i1)
17     o1 = i1;
18 endfunction
19 val = macrovar(foo);
20 assert_checkequal(ref, val);
21 //n in, n out
22 ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], [], [], []);
23 function [o1, o2, o3] = foo(i1, i2, i3, i4)
24     o1 = i1 + i2;
25     o2 = i2 + i3;
26     o3 = i3 + i4;
27 endfunction
28 val = macrovar(foo);
29 assert_checkequal(ref, val);
30 //add local vars
31 ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], [], [], ["l1";"l2";"l3"]);
32 function [o1, o2, o3] = foo(i1, i2, i3, i4)
33     l1 = i1 + i2;
34     l2 = i2 + i3;
35     l3 = i3 + i4;
36     o1 = l1;
37     o2 = l2;
38     o3 = l3;
39 endfunction
40 val = macrovar(foo);
41 assert_checkequal(ref, val);
42 //add external vars
43 e1 = 1;
44 e2 = 2;
45 e3 = 3;
46 ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], ["e1";"e2";"e3"], [], ["l1";"l2";"l3"]);
47 function [o1, o2, o3] = foo(i1, i2, i3, i4)
48     l1 = i1 + i2;
49     l2 = i2 + i3;
50     l3 = i3 + i4;
51     o1 = l1 + e1;
52     o2 = l2 + e2;
53     o3 = l3 + e3;
54 endfunction
55 val = macrovar(foo);
56 assert_checkequal(ref, val);
57 //add function calls
58 e1 = 1;
59 e2 = 2;
60 e3 = 3;
61 ref = list(["i1";"i2";"i3";"i4"], ["o1";"o2";"o3"], ["e1";"e2";"e3"], ["cos";"sin";"tan"], ["l1";"l2";"l3"]);
62 function [o1, o2, o3] = foo(i1, i2, i3, i4)
63     l1 = i1 + i2;
64     l2 = i2 + i3;
65     l3 = i3 + i4;
66     o1 = cos(l1 + e1);
67     o2 = sin(l2 + e2);
68     o3 = tan(l3 + e3);
69 endfunction
70 val = macrovar(foo);
71 assert_checkequal(ref, val);