Analysis: replace constant in Result by a C++ union
[scilab.git] / scilab / modules / ast / tests / unit_tests / analysis1.dia.ref
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2015 - Scilab Enterprises - Calixte DENIZET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7 // <-- JVM NOT MANDATORY -->
8 function y=test1(a, b)
9     y = a+b;
10 endfunction
11 a = 12;
12 b = ones(13, 17);
13 out = testAnalysis("test1", "a", "b");
14 assert_checkequal(out.type, "double");
15 assert_checkequal(out.rows, 13);
16 assert_checkequal(out.cols, 17);
17 a = ones(12, 11);
18 b = ones(13, 17);
19 out = testAnalysis("test1", "a", "b");
20 assert_checkequal(out.type, "double");
21 assert_checkequal(out.rows, %nan);
22 assert_checkequal(out.cols, %nan);
23 a = ones(12, 11);
24 b = ones(12, 11);
25 out = testAnalysis("test1", "a", "b");
26 assert_checkequal(out.type, "double");
27 assert_checkequal(out.rows, 12);
28 assert_checkequal(out.cols, 11);
29 a = int8(12);
30 b = ones(13, 17);
31 out = testAnalysis("test1", "a", "b");
32 assert_checkequal(out.type, "int8");
33 assert_checkequal(out.rows, 13);
34 assert_checkequal(out.cols, 17);
35 a = ones(12, 11);
36 b = uint32(ones(12, 11));
37 out = testAnalysis("test1", "a", "b");
38 assert_checkequal(out.type, "uint32");
39 assert_checkequal(out.rows, 12);
40 assert_checkequal(out.cols, 11);
41 function y = test2(a, b, c)
42     y = [a b;c]
43 endfunction
44 a = 1:3;
45 b = 1:7;
46 c = matrix(1:20, 2, -1);
47 out = testAnalysis("test2", "a", "b", "c");
48 assert_checkequal(out.type, "double");
49 assert_checkequal(out.rows, 3);
50 assert_checkequal(out.cols, 10);
51 a = 1:3;
52 b = 1:7;
53 c = matrix(1:20, 2, -1);
54 // we "forget" c, so c is taken in this scope
55 out = testAnalysis("test2", "a", "b");
56 assert_checkequal(out.type, "double");
57 assert_checkequal(out.rows, 3);
58 assert_checkequal(out.cols, 10);
59 function y = test3(a, b, c)
60     row = size(a, "r");
61     col = size(a, "c");
62     a = matrix(a, col, row);
63     [row, col] = size(b);
64     b = matrix(b, col, row);
65     y = (a .*. b) * c'
66 endfunction
67 a = ones(2, 4);
68 b = ones(5, 9);
69 c = ones(321, 10);
70 out = testAnalysis("test3", "a", "b", "c");
71 assert_checkequal(out.type, "double");
72 assert_checkequal(out.rows, 36);
73 assert_checkequal(out.cols, 321);
74 a = int32(ones(2, 4));
75 b = uint8(ones(5, 9));
76 c = ones(321, 10);
77 out = testAnalysis("test3", "a", "b", "c");
78 assert_checkequal(out.type, "uint32");
79 assert_checkequal(out.rows, 36);
80 assert_checkequal(out.cols, 321);
81 a = int32(ones(2, 4));
82 b = uint8(ones(5, 9));
83 c = ones(2, 2);
84 out = testAnalysis("test3", "a", "b", "c");
85 assert_checkequal(out.type, "uint32");
86 assert_checkequal(out.rows, %nan);
87 assert_checkequal(out.cols, %nan);
88 function y = test4(a, b, c)
89     y = test1(a, b) * test2(a, b, c)
90 endfunction
91 a = ones(5, 8);
92 b = ones(5, 8);
93 c = ones(3, 16);
94 out = testAnalysis("test4", "a", "b", "c");
95 assert_checkequal(out.type, "double");
96 assert_checkequal(out.rows, 5);
97 assert_checkequal(out.cols, 16);