8418a6f0fe978dfe5b0c5572372a5ee54cb3cc48
[scilab.git] / scilab / modules / graphics / tests / unit_tests / set.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2018 - Samuel GOUGEON
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- TEST WITH GRAPHIC -->
9 // <-- NO CHECK REF -->
10 //
11 // Unitary tests for set(h), h.prop = and h("prop") =
12 //
13
14 clf;
15 plot();
16 f = gcf();
17
18 // SETS MULTIPLE PROPERTIES
19 // ========================
20 // .. of a scalar handle
21 set(f, "figure_name", "set() test", "axes_size", [500 400]);
22 assert_checkequal(f.figure_name, "set() test");
23 assert_checkequal(f.axes_size, [500 400]);
24
25 // .. of a vector of handles
26 set(f.children, "foreground", 2, "rotation_angles", [0 90], "view","2d");
27 assert_checkequal(f.children.foreground, [2 2]');
28 assert_checkequal(f.children.view, ["2d" "2d"]');
29 assert_checkequal(f.children.rotation_angles, [0 270 ; 0 270]);
30
31 // SCALAR HANDLE
32 // =============
33 // Scalar property value
34 set(f, "rotation_style", "multiple");
35 assert_checkequal(f.rotation_style, "multiple");
36 f.rotation_style = "unary";
37 assert_checkequal(f.rotation_style, "unary");
38 f("rotation_style") = "multiple";
39 assert_checkequal(f.rotation_style, "multiple");
40
41 // Row property value
42 set(f, "axes_size", [600, 500]); sleep(200)
43 assert_checkequal(f.axes_size, [600 500]);
44 f.axes_size = [700 600]; sleep(200)
45 assert_checkequal(f.axes_size, [700 600]);
46 f.axes_size = [650 550]; sleep(200)
47 assert_checkequal(f.axes_size, [650 550]);
48
49 // Matrix property value
50 cm = jetcolormap(50);
51 set(f, "color_map", cm);
52 assert_checkequal(f.color_map, cm);
53 cm = jetcolormap(51);
54 f.color_map = cm;
55 assert_checkequal(f.color_map, cm);
56 cm = jetcolormap(52);
57 f.color_map = cm;
58 assert_checkequal(f.color_map, cm);
59
60
61 // ARRAY OF HANDLES
62 // ================
63 e = gce().children;  // Set of curves
64 // Scalar property value (curve.thickness): repeated assignment
65 L = list(e(1:3) , 2, [2 2 2]', ..
66          e(1:3)', 3, [3 3 3]', ..
67          matrix(e(1:6),2,3), 2, [2 2 2 2 2 2]');
68 for i = 0:(size(L)/3-1)
69     h = L(1+3*i);
70     v = L(2+3*i);
71     vref = L(3+3*i);
72     set(h, "thickness",v);
73     assert_checkequal(h.thickness, vref);
74     h.thickness = 2*v;
75     assert_checkequal(h.thickness, 2*vref);
76     h("thickness") = v;
77     assert_checkequal(h.thickness, vref);
78 end
79 // Scalar property value (curve.thickness): distributive assignment
80 L = list(e(1:3) , [2 3 4]', [2 3 4]', ..
81          e(1:3)', [1 2 3],  [1 2 3]', ..
82          matrix(e(1:6),2,3), [2 4 6; 3 5 7], (2:7)', ..
83          matrix(e(1:6),2,3), 1:6, (1:6)', ..
84          matrix(e(1:6),2,3), (1:6)', (1:6)', ..
85          );
86 for i = 0:(size(L)/3-1)
87     h = L(1+3*i);
88     v = L(2+3*i);
89     vref = L(3+3*i);
90     set(h, "thickness",v);
91     assert_checkequal(h.thickness, vref);
92     h.thickness = 2*v;
93     assert_checkequal(h.thickness, 2*vref);
94     h("thickness") = v;
95     assert_checkequal(h.thickness, vref);
96 end
97
98 // Row property value (axes.grid): repeated assignments
99 a = gcf().children;
100 L = list(a , [1 2], [1 2 ; 1 2], ..
101          a', [2 3], [2 3 ; 2 3], ..
102         );
103 for i = 0:(size(L)/3-1)
104     h = L(1+3*i);
105     v = L(2+3*i);
106     vref = L(3+3*i);
107     set(h, "grid",v);
108     assert_checkequal(h.grid, vref);
109     h.grid = v;
110     assert_checkequal(h.grid, vref);
111     h("grid") = v;
112     assert_checkequal(h.grid, vref);
113 end
114
115 // Row property value (axes.grid): row-wise assignments
116 L = list(a , [1 5 ; 3 5], [1 5 ; 3 5], ..
117          a' , [1 5 ; 3 5], [1 5 ; 3 5], ..
118         );
119 for i = 0:(size(L)/3-1)
120     h = L(1+3*i);
121     v = L(2+3*i);
122     vref = L(3+3*i);
123     set(h, "grid",v);
124     assert_checkequal(h.grid, vref);
125     h.grid = v;
126     assert_checkequal(h.grid, vref);
127     h("grid") = v;
128     assert_checkequal(h.grid, vref);
129 end
130
131 // Matrix property value (axes.data_bounds): repeated rowed assignments
132 L = list(a , [1 1.5 0 0.5], [1 0 ; 1.5 0.5 ; 1 0 ; 1.5 0.5], ..
133          a', [1 1.5 0 0.5], [1 0 ; 1.5 0.5 ; 1 0 ; 1.5 0.5], ..
134         );
135 for i = 0:(size(L)/3-1)
136     h = L(1+3*i);
137     v = L(2+3*i);
138     vref = L(3+3*i);
139     set(h, "data_bounds",v);
140     assert_checkequal(h.data_bounds, vref);
141     h.data_bounds = v;
142     assert_checkequal(h.data_bounds, vref);
143     h("data_bounds") = v;
144     assert_checkequal(h.data_bounds, vref);
145 end
146
147 // Matrix property value (axes.data_bounds): rowed-wise assignments
148 L = list(a , [1 1.5 0 0.5 ; 1.5 2.2 -0.5 1], [1 0 ; 1.5 0.5 ; 1.5 -0.5 ; 2.2 1], ..
149          a', [1 1.5 0 0.5 ; 1.5 2.2 -0.5 1], [1 0 ; 1.5 0.5 ; 1.5 -0.5 ; 2.2 1], ..
150         );  // beware about http://bugzilla.scilab.org/15079 for vref
151 for i = 0:(size(L)/3-1)
152     h = L(1+3*i);
153     v = L(2+3*i);
154     vref = L(3+3*i);
155     set(h, "data_bounds",v);
156     assert_checkequal(h.data_bounds, vref);
157     h.data_bounds = v;
158     assert_checkequal(h.data_bounds, vref);
159     h("data_bounds") = v;
160     assert_checkequal(h.data_bounds, vref);
161 end