comparison testing/utp_1.1/generic_utps/utp_generic_aop_rule10.m @ 44:409a22968d5e default

Add unit tests
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Tue, 06 Dec 2011 18:42:11 +0100
parents
children
comparison
equal deleted inserted replaced
43:bc767aaa99a8 44:409a22968d5e
1
2 % <TestDescription>
3 %
4 % Tests the arithmetic operators rule 10.
5 %
6 % </TestDescription>
7 function result = utp_generic_aop_rule10(fcn)
8
9 % <SyntaxDescription>
10 %
11 % Tests the arithmetic operators rule 10 for each data type: xydata,
12 % fsdata, tsdata, cdata and useful combinations.
13 %
14 % </SyntaxDescription>
15
16 % Test AOs
17 % tsdata
18 n = 12;
19 fs = 12.1;
20 x = 0:(1/fs):(n/fs)-1/fs;
21 a_ts = ao(x,randn(n,1), fs);
22 a_ts.setDx(ones(n,1)*1.1);
23 a_ts.setDy((1:n)*2.2);
24 a_ts.setYunits('Hz^(-1/2) V^2');
25 a_ts.setName();
26
27 b_ts = ao(x,randn(n,1), fs);
28 b_ts.setDx(7);
29 b_ts.setDy(9);
30 b_ts.setYunits('Hz^(-1/2) V^2');
31 b_ts.setName();
32
33 M_NP_ts = [copy(a_ts, 1), copy(a_ts, 1), copy(b_ts, 1); copy(b_ts, 1), copy(a_ts, 1), copy(a_ts, 1)];
34 H_NP_ts = [copy(b_ts, 1), copy(a_ts, 1), copy(a_ts, 1); copy(b_ts, 1), copy(b_ts, 1), copy(a_ts, 1)];
35
36 % fsdata
37 a_fs = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'fsdata'));
38 a_fs.setDx(ones(n,1)*1.1);
39 a_fs.setDy((1:n)*2.2);
40 a_fs.setName();
41
42 b_fs = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'fsdata'));
43 b_fs.setDx(7);
44 b_fs.setDy(9);
45 b_fs.setName();
46
47 M_NP_fs = [copy(a_fs, 1), copy(a_fs, 1), copy(b_fs, 1); copy(b_fs, 1), copy(a_fs, 1), copy(a_fs, 1)];
48 H_NP_fs = [copy(b_fs, 1), copy(a_fs, 1), copy(a_fs, 1); copy(b_fs, 1), copy(b_fs, 1), copy(a_fs, 1)];
49
50 % xydata
51 a_xy = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'xydata'));
52 a_xy.setDx(ones(n,1)*1.1);
53 a_xy.setDy((1:n)*2.2);
54 a_xy.setYunits('Hz^(-1/2) V^2');
55 a_xy.setName();
56
57 b_xy = ao(plist('xvals', 1:n, 'yvals', abs(randn(n,1)), 'type', 'xydata'));
58 b_xy.setDx(7);
59 b_xy.setDy(9);
60 b_xy.setName();
61
62 M_NP_xy = [copy(a_xy, 1), copy(a_xy, 1), copy(b_xy, 1); copy(b_xy, 1), copy(a_xy, 1), copy(a_xy, 1)];
63 H_NP_xy = [copy(b_xy, 1), copy(a_xy, 1), copy(a_xy, 1); copy(b_xy, 1), copy(b_xy, 1), copy(a_xy, 1)];
64
65 % cdata
66 a_c = ao(8);
67 a_c.setDy(2);
68 a_c.setName();
69
70 b_c = ao(111:122);
71 b_c.setDy((111:122)/100);
72 b_c.setName();
73
74 M_NP_c = [copy(a_c, 1), copy(a_c, 1), copy(b_c, 1); copy(b_c, 1), copy(a_c, 1), copy(a_c, 1)];
75 H_NP_c = [copy(b_c, 1), copy(a_c, 1), copy(a_c, 1); copy(b_c, 1), copy(b_c, 1), copy(a_c, 1)];
76
77 % Define check functions
78 checkFcns = {...
79 @checkDataObjectRule10, ...
80 @checkValuesRule10, ...
81 @checkErrorsRule10, ...
82 @checkUnitsRule10, ...
83 @check_aop_history};
84
85 result = [];
86
87 % <AlgoDescription>
88 %
89 % Here we test element-wise operator rule10 as in S2-AEI-TN-3059.
90 %
91 % 1) Check the data type of the resulting object.
92 % 2) Check the resulting object contains the correct values.
93 % 3) Check the error propagation.
94 % 4) Check the units of the output object.
95 % 5) Check the resulting object can be rebuilt.
96 %
97 % </AlgoDescription>
98
99
100 % <AlgoCode>
101 % tsdata
102 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP tsdata and NxP tsdata', M_NP_ts, H_NP_ts, checkFcns)];
103 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP tsdata and NxP tsdata', H_NP_ts, M_NP_ts, checkFcns)];
104 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP tsdata and NxP xydata', M_NP_ts, H_NP_xy, checkFcns)];
105 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP xydata and NxP tsdata', H_NP_xy, M_NP_ts, checkFcns)];
106 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP tsdata and NxP cdata', M_NP_ts, H_NP_c, checkFcns)];
107 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP cdata and NxP tsdata', H_NP_c, M_NP_ts, checkFcns)];
108
109 % fsdata
110 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP fsdata and NxP fsdata', M_NP_fs, H_NP_fs, checkFcns)];
111 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP fsdata and NxP fsdata', H_NP_fs, M_NP_fs, checkFcns)];
112 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP fsdata and NxP xydata', M_NP_fs, H_NP_xy, checkFcns)];
113 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP xydata and NxP fsdata', H_NP_xy, M_NP_fs, checkFcns)];
114 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP fsdata and NxP cdata', M_NP_fs, H_NP_c, checkFcns)];
115 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP cdata and NxP fsdata', H_NP_c, M_NP_fs, checkFcns)];
116
117 % xydata
118 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP xydata and NxP xydata', M_NP_xy, H_NP_xy, checkFcns)];
119 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP xydata and NxP xydata', H_NP_xy, M_NP_xy, checkFcns)];
120 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP xydata and NxP cdata', M_NP_xy, H_NP_c, checkFcns)];
121 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP cdata and NxP xydata', H_NP_c, M_NP_xy, checkFcns)];
122
123 % cdata
124 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP cdata and NxP cdata', M_NP_c, H_NP_c, checkFcns)];
125 result = [result utp_generic_aop_core(fcn, 'rule10', 'NxP cdata and NxP cdata', H_NP_c, M_NP_c, checkFcns)];
126 % </AlgoCode>
127
128 end % END UTP_rule10
129
130 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
131 % Define here the checking functions %
132 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
133
134 %%%%%%%%%% Data object test %%%%%%%%%%
135 function atest = checkDataObjectRule10(fcn, in1, in2, out)
136
137 for ii = 1:size(in1,1)
138 atest = check_aop_data_object(fcn, in1(ii), in2(ii), out(ii));
139 if atest == 0
140 break;
141 end
142 end
143 end
144
145 %%%%%%%%%% Value test %%%%%%%%%%
146 function atest = checkValuesRule10(fcn, in1, in2, out)
147
148 atest = true;
149 for ii = 1:size(in1,1)
150 if ~isequal(fcn(in1(ii).data.getY, in2(ii).data.getY), out(ii).data.getY)
151 atest = false;
152 break;
153 end
154 end
155 end
156
157 %%%%%%%%%% Errors test %%%%%%%%%%
158 function atest = checkErrorsRule10(fcn, in1, in2, out)
159
160 atest = true;
161 for ii = 1:size(in1,1)
162 atest = check_aop_errors(fcn, in1(ii), in2(ii), out(ii));
163 if atest == 0
164 break;
165 end
166 end
167 end
168
169 %%%%%%%%%% Units test %%%%%%%%%%
170 function atest = checkUnitsRule10(fcn, in1, in2, out)
171
172 atest = true;
173 for ii = 1:size(in1,1)
174 atest = check_aop_units(fcn, in1(ii), in2(ii), out(ii));
175 if atest == 0
176 break;
177 end
178 end
179 end
180
181