106 }
107
108 class BasicWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
109 protected:
110 BasicWorkerDataArrayTest() {
111 array.set(0, 5);
112 array.set(1, 3);
113 array.set(2, 7);
114 }
115
116 private:
117 virtual const char* expected_summary() {
118 return format_summary(3, 5.0, 7, 4, 15, 3);
119 }
120
121 virtual const char* expected_details() {
122 return " 5 3 7\n";
123 }
124 };
125
126 TEST_F(BasicWorkerDataArrayTest, sum_test) {
127 ASSERT_EQ(15u, array.sum());
128 }
129
130 TEST_F(BasicWorkerDataArrayTest, average_test) {
131 ASSERT_NEAR(5.0, array.average(), epsilon);
132 }
133
134 TEST_F(BasicWorkerDataArrayTest, print_summary_on_test) {
135 ASSERT_STREQ(print_expected_summary(), print_summary());
136 }
137
138 TEST_F(BasicWorkerDataArrayTest, print_details_on_test) {
139 ASSERT_STREQ(print_expected_details(), print_details());
140 }
141
142 class AddWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
143 protected:
144 AddWorkerDataArrayTest() {
145 array.set(0, 5);
146 array.set(1, 3);
147 array.set(2, 7);
148
149 for (uint i = 0; i < 3; i++) {
150 array.add(i, 1);
151 }
152 }
153
154 private:
155 virtual const char* expected_summary() {
156 return format_summary(4, 6.0, 8, 4, 18, 3);
157 }
158
159 virtual const char* expected_details() {
160 return " 6 4 8\n";
161 }
162 };
163
164 TEST_F(AddWorkerDataArrayTest, sum_test) {
165 ASSERT_EQ(18u, array.sum());
166 }
167
168 TEST_F(AddWorkerDataArrayTest, average_test) {
169 ASSERT_NEAR(6.0, array.average(), epsilon);
170 }
171
172 TEST_F(AddWorkerDataArrayTest, print_summary_on_test) {
173 ASSERT_STREQ(print_expected_summary(), print_summary());
174 }
175
176 TEST_F(AddWorkerDataArrayTest, print_details_on_test) {
177 ASSERT_STREQ(print_expected_details(), print_details());
178 }
179
180 class UninitializedElementWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
181 protected:
182 UninitializedElementWorkerDataArrayTest() {
183 array.set(0, 5);
184 array.set(1, WorkerDataArray<size_t>::uninitialized());
185 array.set(2, 7);
186 }
187
188 private:
189 virtual const char* expected_summary() {
190 return format_summary(5, 6.0, 7, 2, 12, 2);
191 }
192
193 virtual const char* expected_details() {
194 return " 5 - 7\n";
195 }
196 };
197
198 TEST_F(UninitializedElementWorkerDataArrayTest, sum_test) {
199 ASSERT_EQ(12u, array.sum());
200 }
201
202 TEST_F(UninitializedElementWorkerDataArrayTest, average_test) {
203 ASSERT_NEAR(6.0, array.average(), epsilon);
204 }
205
206 TEST_F(UninitializedElementWorkerDataArrayTest, print_summary_on_test) {
207 ASSERT_STREQ(print_expected_summary(), print_summary());
208 }
209
210 TEST_F(UninitializedElementWorkerDataArrayTest, print_details_on_test) {
211 ASSERT_STREQ(print_expected_details(), print_details());
212 }
213
214 class UninitializedWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
215 protected:
216 UninitializedWorkerDataArrayTest() {
217 array.set(0, WorkerDataArray<size_t>::uninitialized());
218 array.set(1, WorkerDataArray<size_t>::uninitialized());
219 array.set(2, WorkerDataArray<size_t>::uninitialized());
220 }
221
222 private:
223 virtual const char* expected_summary() {
224 return " skipped\n";
225 }
226
227 virtual const char* expected_details() {
228 return " - - -\n";
229 }
230 };
231
232 TEST_F(UninitializedWorkerDataArrayTest, sum_test) {
233 ASSERT_EQ(0u, array.sum());
234 }
235
236 TEST_F(UninitializedWorkerDataArrayTest, average_test) {
237 ASSERT_NEAR(0.0, array.average(), epsilon);
238 }
239
240 TEST_F(UninitializedWorkerDataArrayTest, print_summary_on_test) {
241 ASSERT_STREQ(print_expected_summary(), print_summary());
242 }
243
244 TEST_F(UninitializedWorkerDataArrayTest, print_details_on_test) {
245 ASSERT_STREQ(print_expected_details(), print_details());
246 }
247
248 class UninitializedDoubleElementWorkerDataArrayTest : public WorkerDataArrayTest<double> {
249 protected:
250 UninitializedDoubleElementWorkerDataArrayTest() {
251 array.set(0, 5.1 / MILLIUNITS);
252 array.set(1, WorkerDataArray<double>::uninitialized());
253 array.set(2, 7.2 / MILLIUNITS);
254 }
255
256 private:
257 virtual const char* expected_summary() {
258 return format_summary(5.1, 6.1, 7.2, 2.1, 12.3, 2);
259 }
260
261 virtual const char* expected_details() {
262 stringStream out;
263 out.print(" %4.1lf - %4.1lf\n", 5.1, 7.2);
264 return out.as_string();
265 }
266 };
267
268 TEST_F(UninitializedDoubleElementWorkerDataArrayTest, sum_test) {
269 ASSERT_NEAR(12.3 / MILLIUNITS, array.sum(), epsilon);
270 }
271
272 TEST_F(UninitializedDoubleElementWorkerDataArrayTest, average_test) {
273 ASSERT_NEAR(6.15 / MILLIUNITS, array.average(), epsilon);
274 }
275
276 TEST_F(UninitializedDoubleElementWorkerDataArrayTest, print_summary_on_test) {
277 ASSERT_STREQ(print_expected_summary(), print_summary());
278 }
279
280 TEST_F(UninitializedDoubleElementWorkerDataArrayTest, print_details_on_test) {
281 ASSERT_STREQ(print_expected_details(), print_details());
282 }
|
106 }
107
108 class BasicWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
109 protected:
110 BasicWorkerDataArrayTest() {
111 array.set(0, 5);
112 array.set(1, 3);
113 array.set(2, 7);
114 }
115
116 private:
117 virtual const char* expected_summary() {
118 return format_summary(3, 5.0, 7, 4, 15, 3);
119 }
120
121 virtual const char* expected_details() {
122 return " 5 3 7\n";
123 }
124 };
125
126 TEST_VM_F(BasicWorkerDataArrayTest, sum_test) {
127 ASSERT_EQ(15u, array.sum());
128 }
129
130 TEST_VM_F(BasicWorkerDataArrayTest, average_test) {
131 ASSERT_NEAR(5.0, array.average(), epsilon);
132 }
133
134 TEST_VM_F(BasicWorkerDataArrayTest, print_summary_on_test) {
135 ASSERT_STREQ(print_expected_summary(), print_summary());
136 }
137
138 TEST_VM_F(BasicWorkerDataArrayTest, print_details_on_test) {
139 ASSERT_STREQ(print_expected_details(), print_details());
140 }
141
142 class AddWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
143 protected:
144 AddWorkerDataArrayTest() {
145 array.set(0, 5);
146 array.set(1, 3);
147 array.set(2, 7);
148
149 for (uint i = 0; i < 3; i++) {
150 array.add(i, 1);
151 }
152 }
153
154 private:
155 virtual const char* expected_summary() {
156 return format_summary(4, 6.0, 8, 4, 18, 3);
157 }
158
159 virtual const char* expected_details() {
160 return " 6 4 8\n";
161 }
162 };
163
164 TEST_VM_F(AddWorkerDataArrayTest, sum_test) {
165 ASSERT_EQ(18u, array.sum());
166 }
167
168 TEST_VM_F(AddWorkerDataArrayTest, average_test) {
169 ASSERT_NEAR(6.0, array.average(), epsilon);
170 }
171
172 TEST_VM_F(AddWorkerDataArrayTest, print_summary_on_test) {
173 ASSERT_STREQ(print_expected_summary(), print_summary());
174 }
175
176 TEST_VM_F(AddWorkerDataArrayTest, print_details_on_test) {
177 ASSERT_STREQ(print_expected_details(), print_details());
178 }
179
180 class UninitializedElementWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
181 protected:
182 UninitializedElementWorkerDataArrayTest() {
183 array.set(0, 5);
184 array.set(1, WorkerDataArray<size_t>::uninitialized());
185 array.set(2, 7);
186 }
187
188 private:
189 virtual const char* expected_summary() {
190 return format_summary(5, 6.0, 7, 2, 12, 2);
191 }
192
193 virtual const char* expected_details() {
194 return " 5 - 7\n";
195 }
196 };
197
198 TEST_VM_F(UninitializedElementWorkerDataArrayTest, sum_test) {
199 ASSERT_EQ(12u, array.sum());
200 }
201
202 TEST_VM_F(UninitializedElementWorkerDataArrayTest, average_test) {
203 ASSERT_NEAR(6.0, array.average(), epsilon);
204 }
205
206 TEST_VM_F(UninitializedElementWorkerDataArrayTest, print_summary_on_test) {
207 ASSERT_STREQ(print_expected_summary(), print_summary());
208 }
209
210 TEST_VM_F(UninitializedElementWorkerDataArrayTest, print_details_on_test) {
211 ASSERT_STREQ(print_expected_details(), print_details());
212 }
213
214 class UninitializedWorkerDataArrayTest : public WorkerDataArrayTest<size_t> {
215 protected:
216 UninitializedWorkerDataArrayTest() {
217 array.set(0, WorkerDataArray<size_t>::uninitialized());
218 array.set(1, WorkerDataArray<size_t>::uninitialized());
219 array.set(2, WorkerDataArray<size_t>::uninitialized());
220 }
221
222 private:
223 virtual const char* expected_summary() {
224 return " skipped\n";
225 }
226
227 virtual const char* expected_details() {
228 return " - - -\n";
229 }
230 };
231
232 TEST_VM_F(UninitializedWorkerDataArrayTest, sum_test) {
233 ASSERT_EQ(0u, array.sum());
234 }
235
236 TEST_VM_F(UninitializedWorkerDataArrayTest, average_test) {
237 ASSERT_NEAR(0.0, array.average(), epsilon);
238 }
239
240 TEST_VM_F(UninitializedWorkerDataArrayTest, print_summary_on_test) {
241 ASSERT_STREQ(print_expected_summary(), print_summary());
242 }
243
244 TEST_VM_F(UninitializedWorkerDataArrayTest, print_details_on_test) {
245 ASSERT_STREQ(print_expected_details(), print_details());
246 }
247
248 class UninitializedDoubleElementWorkerDataArrayTest : public WorkerDataArrayTest<double> {
249 protected:
250 UninitializedDoubleElementWorkerDataArrayTest() {
251 array.set(0, 5.1 / MILLIUNITS);
252 array.set(1, WorkerDataArray<double>::uninitialized());
253 array.set(2, 7.2 / MILLIUNITS);
254 }
255
256 private:
257 virtual const char* expected_summary() {
258 return format_summary(5.1, 6.1, 7.2, 2.1, 12.3, 2);
259 }
260
261 virtual const char* expected_details() {
262 stringStream out;
263 out.print(" %4.1lf - %4.1lf\n", 5.1, 7.2);
264 return out.as_string();
265 }
266 };
267
268 TEST_VM_F(UninitializedDoubleElementWorkerDataArrayTest, sum_test) {
269 ASSERT_NEAR(12.3 / MILLIUNITS, array.sum(), epsilon);
270 }
271
272 TEST_VM_F(UninitializedDoubleElementWorkerDataArrayTest, average_test) {
273 ASSERT_NEAR(6.15 / MILLIUNITS, array.average(), epsilon);
274 }
275
276 TEST_VM_F(UninitializedDoubleElementWorkerDataArrayTest, print_summary_on_test) {
277 ASSERT_STREQ(print_expected_summary(), print_summary());
278 }
279
280 TEST_VM_F(UninitializedDoubleElementWorkerDataArrayTest, print_details_on_test) {
281 ASSERT_STREQ(print_expected_details(), print_details());
282 }
|