1 | /**************************************************************************** |
2 | ** |
3 | ** Copyright (C) 2016 Paul Lemire <paul.lemire350@gmail.com> |
4 | ** Contact: https://www.qt.io/licensing/ |
5 | ** |
6 | ** This file is part of the Qt3D module of the Qt Toolkit. |
7 | ** |
8 | ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ |
9 | ** Commercial License Usage |
10 | ** Licensees holding valid commercial Qt licenses may use this file in |
11 | ** accordance with the commercial license agreement provided with the |
12 | ** Software or, alternatively, in accordance with the terms contained in |
13 | ** a written agreement between you and The Qt Company. For licensing terms |
14 | ** and conditions see https://www.qt.io/terms-conditions. For further |
15 | ** information use the contact form at https://www.qt.io/contact-us. |
16 | ** |
17 | ** GNU General Public License Usage |
18 | ** Alternatively, this file may be used under the terms of the GNU |
19 | ** General Public License version 3 as published by the Free Software |
20 | ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT |
21 | ** included in the packaging of this file. Please review the following |
22 | ** information to ensure the GNU General Public License requirements will |
23 | ** be met: https://www.gnu.org/licenses/gpl-3.0.html. |
24 | ** |
25 | ** $QT_END_LICENSE$ |
26 | ** |
27 | ****************************************************************************/ |
28 | |
29 | #include <QtTest/QtTest> |
30 | #include <Qt3DCore/private/vector3d_p.h> |
31 | |
32 | class tst_Vector3D_Base: public QObject |
33 | { |
34 | Q_OBJECT |
35 | private Q_SLOTS: |
36 | void defaultConstruction() |
37 | { |
38 | // GIVEN |
39 | QVector3D vec3; |
40 | |
41 | // THEN |
42 | QCOMPARE(vec3.x(), 0.0f); |
43 | QCOMPARE(vec3.y(), 0.0f); |
44 | QCOMPARE(vec3.z(), 0.0f); |
45 | } |
46 | |
47 | void checkExplicitConstruction() |
48 | { |
49 | // GIVEN |
50 | QVector3D vec3(427.0f, 454.0f, 383.0f); |
51 | |
52 | // THEN |
53 | QCOMPARE(vec3.x(), 427.0f); |
54 | QCOMPARE(vec3.y(), 454.0f); |
55 | QCOMPARE(vec3.z(), 383.0f); |
56 | } |
57 | |
58 | void checkSelfAddition_data() |
59 | { |
60 | QTest::addColumn<float>(name: "xO" ); |
61 | QTest::addColumn<float>(name: "yO" ); |
62 | QTest::addColumn<float>(name: "zO" ); |
63 | |
64 | QTest::addColumn<float>(name: "xA" ); |
65 | QTest::addColumn<float>(name: "yA" ); |
66 | QTest::addColumn<float>(name: "zA" ); |
67 | |
68 | QTest::addColumn<float>(name: "xR" ); |
69 | QTest::addColumn<float>(name: "yR" ); |
70 | QTest::addColumn<float>(name: "zR" ); |
71 | |
72 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 0.0f |
73 | << 1.0f << 5.0f << 8.0f |
74 | << 1.0f << 5.0f << 8.0f; |
75 | |
76 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << -4.0f |
77 | << 5.0f << -8.0f << 4.0f |
78 | << 0.0f << 0.0f << 0.0f; |
79 | } |
80 | |
81 | void checkSelfAddition() |
82 | { |
83 | QFETCH(float, xO); |
84 | QFETCH(float, yO); |
85 | QFETCH(float, zO); |
86 | |
87 | QFETCH(float, xA); |
88 | QFETCH(float, yA); |
89 | QFETCH(float, zA); |
90 | |
91 | QFETCH(float, xR); |
92 | QFETCH(float, yR); |
93 | QFETCH(float, zR); |
94 | |
95 | // GIVEN |
96 | QVector3D vo(xO, yO, zO); |
97 | |
98 | // WHEN |
99 | vo += QVector3D(xA, yA, zA); |
100 | |
101 | // THEN |
102 | QCOMPARE(vo.x(), xR); |
103 | QCOMPARE(vo.y(), yR); |
104 | QCOMPARE(vo.z(), zR); |
105 | } |
106 | |
107 | void checkSelfSubstraction_data() |
108 | { |
109 | QTest::addColumn<float>(name: "xO" ); |
110 | QTest::addColumn<float>(name: "yO" ); |
111 | QTest::addColumn<float>(name: "zO" ); |
112 | |
113 | QTest::addColumn<float>(name: "xA" ); |
114 | QTest::addColumn<float>(name: "yA" ); |
115 | QTest::addColumn<float>(name: "zA" ); |
116 | |
117 | QTest::addColumn<float>(name: "xR" ); |
118 | QTest::addColumn<float>(name: "yR" ); |
119 | QTest::addColumn<float>(name: "zR" ); |
120 | |
121 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 0.0f |
122 | << 1.0f << 5.0f << 8.0f |
123 | << -1.0f << -5.0f << -8.0f; |
124 | |
125 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << -4.0f |
126 | << 5.0f << -8.0f << 4.0f |
127 | << -10.0f << 16.0f << -8.0f; |
128 | } |
129 | |
130 | void checkSelfSubstraction() |
131 | { |
132 | QFETCH(float, xO); |
133 | QFETCH(float, yO); |
134 | QFETCH(float, zO); |
135 | |
136 | QFETCH(float, xA); |
137 | QFETCH(float, yA); |
138 | QFETCH(float, zA); |
139 | |
140 | QFETCH(float, xR); |
141 | QFETCH(float, yR); |
142 | QFETCH(float, zR); |
143 | |
144 | // GIVEN |
145 | QVector3D vo(xO, yO, zO); |
146 | |
147 | // WHEN |
148 | vo -= QVector3D(xA, yA, zA); |
149 | |
150 | // THEN |
151 | QCOMPARE(vo.x(), xR); |
152 | QCOMPARE(vo.y(), yR); |
153 | QCOMPARE(vo.z(), zR); |
154 | } |
155 | |
156 | void checkSelfMultiplication_data() |
157 | { |
158 | QTest::addColumn<float>(name: "xO" ); |
159 | QTest::addColumn<float>(name: "yO" ); |
160 | QTest::addColumn<float>(name: "zO" ); |
161 | |
162 | QTest::addColumn<float>(name: "xA" ); |
163 | QTest::addColumn<float>(name: "yA" ); |
164 | QTest::addColumn<float>(name: "zA" ); |
165 | |
166 | QTest::addColumn<float>(name: "xR" ); |
167 | QTest::addColumn<float>(name: "yR" ); |
168 | QTest::addColumn<float>(name: "zR" ); |
169 | |
170 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 2.0f |
171 | << 1.0f << 5.0f << 8.0f |
172 | << 0.0f << 0.0f << 16.0f; |
173 | |
174 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << 4.0f |
175 | << 5.0f << -8.0f << 4.0f |
176 | << -25.0f << -64.0f << 16.0f; |
177 | } |
178 | |
179 | void checkSelfMultiplication() |
180 | { |
181 | QFETCH(float, xO); |
182 | QFETCH(float, yO); |
183 | QFETCH(float, zO); |
184 | |
185 | QFETCH(float, xA); |
186 | QFETCH(float, yA); |
187 | QFETCH(float, zA); |
188 | |
189 | QFETCH(float, xR); |
190 | QFETCH(float, yR); |
191 | QFETCH(float, zR); |
192 | |
193 | // GIVEN |
194 | QVector3D vo(xO, yO, zO); |
195 | |
196 | // WHEN |
197 | vo *= QVector3D(xA, yA, zA); |
198 | |
199 | // THEN |
200 | QCOMPARE(vo.x(), xR); |
201 | QCOMPARE(vo.y(), yR); |
202 | QCOMPARE(vo.z(), zR); |
203 | } |
204 | |
205 | void checkSelfDivision_data() |
206 | { |
207 | QTest::addColumn<float>(name: "xO" ); |
208 | QTest::addColumn<float>(name: "yO" ); |
209 | QTest::addColumn<float>(name: "zO" ); |
210 | |
211 | QTest::addColumn<float>(name: "xA" ); |
212 | QTest::addColumn<float>(name: "yA" ); |
213 | QTest::addColumn<float>(name: "zA" ); |
214 | |
215 | QTest::addColumn<float>(name: "xR" ); |
216 | QTest::addColumn<float>(name: "yR" ); |
217 | QTest::addColumn<float>(name: "zR" ); |
218 | |
219 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 2.0f |
220 | << 1.0f << 5.0f << 8.0f |
221 | << 0.0f << 0.0f << 0.25f; |
222 | |
223 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << 4.0f |
224 | << 5.0f << -8.0f << 4.0f |
225 | << -1.0f << -1.0f << 1.0f; |
226 | } |
227 | |
228 | void checkSelfDivision() |
229 | { |
230 | QFETCH(float, xO); |
231 | QFETCH(float, yO); |
232 | QFETCH(float, zO); |
233 | |
234 | QFETCH(float, xA); |
235 | QFETCH(float, yA); |
236 | QFETCH(float, zA); |
237 | |
238 | QFETCH(float, xR); |
239 | QFETCH(float, yR); |
240 | QFETCH(float, zR); |
241 | |
242 | // GIVEN |
243 | QVector3D vo(xO, yO, zO); |
244 | |
245 | // WHEN |
246 | vo /= QVector3D(xA, yA, zA); |
247 | |
248 | // THEN |
249 | QCOMPARE(vo.x(), xR); |
250 | QCOMPARE(vo.y(), yR); |
251 | QCOMPARE(vo.z(), zR); |
252 | } |
253 | |
254 | void checkSelfDivisionFactor_data() |
255 | { |
256 | QTest::addColumn<float>(name: "xO" ); |
257 | QTest::addColumn<float>(name: "yO" ); |
258 | QTest::addColumn<float>(name: "zO" ); |
259 | |
260 | QTest::addColumn<float>(name: "factor" ); |
261 | |
262 | QTest::addColumn<float>(name: "xR" ); |
263 | QTest::addColumn<float>(name: "yR" ); |
264 | QTest::addColumn<float>(name: "zR" ); |
265 | |
266 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 2.0f |
267 | << 1.0f |
268 | << 0.0f << 0.0f << 2.0f; |
269 | |
270 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 20.0f << -25.0f |
271 | << 5.0f |
272 | << -1.0f << 4.0f << -5.0f; |
273 | } |
274 | |
275 | void checkSelfDivisionFactor() |
276 | { |
277 | QFETCH(float, xO); |
278 | QFETCH(float, yO); |
279 | QFETCH(float, zO); |
280 | |
281 | QFETCH(float, factor); |
282 | |
283 | QFETCH(float, xR); |
284 | QFETCH(float, yR); |
285 | QFETCH(float, zR); |
286 | |
287 | // GIVEN |
288 | QVector3D vo(xO, yO, zO); |
289 | |
290 | // WHEN |
291 | vo /= factor; |
292 | |
293 | // THEN |
294 | QCOMPARE(vo.x(), xR); |
295 | QCOMPARE(vo.y(), yR); |
296 | QCOMPARE(vo.z(), zR); |
297 | } |
298 | |
299 | void checkSelfMultiplicationFactor_data() |
300 | { |
301 | QTest::addColumn<float>(name: "xO" ); |
302 | QTest::addColumn<float>(name: "yO" ); |
303 | QTest::addColumn<float>(name: "zO" ); |
304 | |
305 | QTest::addColumn<float>(name: "factor" ); |
306 | |
307 | QTest::addColumn<float>(name: "xR" ); |
308 | QTest::addColumn<float>(name: "yR" ); |
309 | QTest::addColumn<float>(name: "zR" ); |
310 | |
311 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << -3.0f << 2.0f |
312 | << 1.0f |
313 | << 0.0f << -3.0f << 2.0f; |
314 | |
315 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 20.0f << -25.0f |
316 | << 5.0f |
317 | << -25.0f << 100.0f << -125.0f; |
318 | } |
319 | |
320 | void checkSelfMultiplicationFactor() |
321 | { |
322 | QFETCH(float, xO); |
323 | QFETCH(float, yO); |
324 | QFETCH(float, zO); |
325 | |
326 | QFETCH(float, factor); |
327 | |
328 | QFETCH(float, xR); |
329 | QFETCH(float, yR); |
330 | QFETCH(float, zR); |
331 | |
332 | // GIVEN |
333 | QVector3D vo(xO, yO, zO); |
334 | |
335 | // WHEN |
336 | vo *= factor; |
337 | |
338 | // THEN |
339 | QCOMPARE(vo.x(), xR); |
340 | QCOMPARE(vo.y(), yR); |
341 | QCOMPARE(vo.z(), zR); |
342 | } |
343 | |
344 | void checkAddition_data() |
345 | { |
346 | QTest::addColumn<float>(name: "xO" ); |
347 | QTest::addColumn<float>(name: "yO" ); |
348 | QTest::addColumn<float>(name: "zO" ); |
349 | |
350 | QTest::addColumn<float>(name: "xA" ); |
351 | QTest::addColumn<float>(name: "yA" ); |
352 | QTest::addColumn<float>(name: "zA" ); |
353 | |
354 | QTest::addColumn<float>(name: "xR" ); |
355 | QTest::addColumn<float>(name: "yR" ); |
356 | QTest::addColumn<float>(name: "zR" ); |
357 | |
358 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 0.0f |
359 | << 1.0f << 5.0f << 8.0f |
360 | << 1.0f << 5.0f << 8.0f; |
361 | |
362 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << -4.0f |
363 | << 5.0f << -8.0f << 4.0f |
364 | << 0.0f << 0.0f << 0.0f; |
365 | } |
366 | |
367 | void checkAddition() |
368 | { |
369 | QFETCH(float, xO); |
370 | QFETCH(float, yO); |
371 | QFETCH(float, zO); |
372 | |
373 | QFETCH(float, xA); |
374 | QFETCH(float, yA); |
375 | QFETCH(float, zA); |
376 | |
377 | QFETCH(float, xR); |
378 | QFETCH(float, yR); |
379 | QFETCH(float, zR); |
380 | |
381 | // GIVEN |
382 | QVector3D v0(xO, yO, zO); |
383 | QVector3D v1(xA, yA, zA); |
384 | |
385 | // WHEN |
386 | QVector3D v2 = v0 + v1; |
387 | |
388 | // THEN |
389 | QCOMPARE(v2.x(), xR); |
390 | QCOMPARE(v2.y(), yR); |
391 | QCOMPARE(v2.z(), zR); |
392 | } |
393 | |
394 | void checkSubstraction_data() |
395 | { |
396 | QTest::addColumn<float>(name: "xO" ); |
397 | QTest::addColumn<float>(name: "yO" ); |
398 | QTest::addColumn<float>(name: "zO" ); |
399 | |
400 | QTest::addColumn<float>(name: "xA" ); |
401 | QTest::addColumn<float>(name: "yA" ); |
402 | QTest::addColumn<float>(name: "zA" ); |
403 | |
404 | QTest::addColumn<float>(name: "xR" ); |
405 | QTest::addColumn<float>(name: "yR" ); |
406 | QTest::addColumn<float>(name: "zR" ); |
407 | |
408 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 0.0f |
409 | << 1.0f << 5.0f << 8.0f |
410 | << -1.0f << -5.0f << -8.0f; |
411 | |
412 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << -4.0f |
413 | << 5.0f << -8.0f << 4.0f |
414 | << -10.0f << 16.0f << -8.0f; |
415 | } |
416 | |
417 | void checkSubstraction() |
418 | { |
419 | QFETCH(float, xO); |
420 | QFETCH(float, yO); |
421 | QFETCH(float, zO); |
422 | |
423 | QFETCH(float, xA); |
424 | QFETCH(float, yA); |
425 | QFETCH(float, zA); |
426 | |
427 | QFETCH(float, xR); |
428 | QFETCH(float, yR); |
429 | QFETCH(float, zR); |
430 | |
431 | // GIVEN |
432 | QVector3D v0(xO, yO, zO); |
433 | QVector3D v1(xA, yA, zA); |
434 | |
435 | // WHEN |
436 | QVector3D v2 = v0 - v1; |
437 | |
438 | // THEN |
439 | QCOMPARE(v2.x(), xR); |
440 | QCOMPARE(v2.y(), yR); |
441 | QCOMPARE(v2.z(), zR); |
442 | } |
443 | |
444 | void checkMultiplication_data() |
445 | { |
446 | QTest::addColumn<float>(name: "xO" ); |
447 | QTest::addColumn<float>(name: "yO" ); |
448 | QTest::addColumn<float>(name: "zO" ); |
449 | |
450 | QTest::addColumn<float>(name: "xA" ); |
451 | QTest::addColumn<float>(name: "yA" ); |
452 | QTest::addColumn<float>(name: "zA" ); |
453 | |
454 | QTest::addColumn<float>(name: "xR" ); |
455 | QTest::addColumn<float>(name: "yR" ); |
456 | QTest::addColumn<float>(name: "zR" ); |
457 | |
458 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 2.0f |
459 | << 1.0f << 5.0f << 8.0f |
460 | << 0.0f << 0.0f << 16.0f; |
461 | |
462 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << 4.0f |
463 | << 5.0f << -8.0f << 4.0f |
464 | << -25.0f << -64.0f << 16.0f; |
465 | } |
466 | |
467 | void checkMultiplication() |
468 | { |
469 | QFETCH(float, xO); |
470 | QFETCH(float, yO); |
471 | QFETCH(float, zO); |
472 | |
473 | QFETCH(float, xA); |
474 | QFETCH(float, yA); |
475 | QFETCH(float, zA); |
476 | |
477 | QFETCH(float, xR); |
478 | QFETCH(float, yR); |
479 | QFETCH(float, zR); |
480 | |
481 | // GIVEN |
482 | QVector3D v0(xO, yO, zO); |
483 | QVector3D v1(xA, yA, zA); |
484 | |
485 | // WHEN |
486 | QVector3D v2 = v0 * v1; |
487 | |
488 | // THEN |
489 | QCOMPARE(v2.x(), xR); |
490 | QCOMPARE(v2.y(), yR); |
491 | QCOMPARE(v2.z(), zR); |
492 | } |
493 | |
494 | void checkDivision_data() |
495 | { |
496 | QTest::addColumn<float>(name: "xO" ); |
497 | QTest::addColumn<float>(name: "yO" ); |
498 | QTest::addColumn<float>(name: "zO" ); |
499 | |
500 | QTest::addColumn<float>(name: "xA" ); |
501 | QTest::addColumn<float>(name: "yA" ); |
502 | QTest::addColumn<float>(name: "zA" ); |
503 | |
504 | QTest::addColumn<float>(name: "xR" ); |
505 | QTest::addColumn<float>(name: "yR" ); |
506 | QTest::addColumn<float>(name: "zR" ); |
507 | |
508 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 2.0f |
509 | << 1.0f << 5.0f << 8.0f |
510 | << 0.0f << 0.0f << 0.25f; |
511 | |
512 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 8.0f << 4.0f |
513 | << 5.0f << -8.0f << 4.0f |
514 | << -1.0f << -1.0f << 1.0f; |
515 | } |
516 | |
517 | void checkDivision() |
518 | { |
519 | QFETCH(float, xO); |
520 | QFETCH(float, yO); |
521 | QFETCH(float, zO); |
522 | |
523 | QFETCH(float, xA); |
524 | QFETCH(float, yA); |
525 | QFETCH(float, zA); |
526 | |
527 | QFETCH(float, xR); |
528 | QFETCH(float, yR); |
529 | QFETCH(float, zR); |
530 | |
531 | // GIVEN |
532 | QVector3D v0(xO, yO, zO); |
533 | QVector3D v1(xA, yA, zA); |
534 | |
535 | // WHEN |
536 | QVector3D v2 = v0 / v1; |
537 | |
538 | // THEN |
539 | QCOMPARE(v2.x(), xR); |
540 | QCOMPARE(v2.y(), yR); |
541 | QCOMPARE(v2.z(), zR); |
542 | } |
543 | |
544 | void checkDivisionFactor_data() |
545 | { |
546 | QTest::addColumn<float>(name: "xO" ); |
547 | QTest::addColumn<float>(name: "yO" ); |
548 | QTest::addColumn<float>(name: "zO" ); |
549 | |
550 | QTest::addColumn<float>(name: "factor" ); |
551 | |
552 | QTest::addColumn<float>(name: "xR" ); |
553 | QTest::addColumn<float>(name: "yR" ); |
554 | QTest::addColumn<float>(name: "zR" ); |
555 | |
556 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << 0.0f << 2.0f |
557 | << 1.0f |
558 | << 0.0f << 0.0f << 2.0f; |
559 | |
560 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 20.0f << -25.0f |
561 | << 5.0f |
562 | << -1.0f << 4.0f << -5.0f; |
563 | } |
564 | |
565 | void checkDivisionFactor() |
566 | { |
567 | QFETCH(float, xO); |
568 | QFETCH(float, yO); |
569 | QFETCH(float, zO); |
570 | |
571 | QFETCH(float, factor); |
572 | |
573 | QFETCH(float, xR); |
574 | QFETCH(float, yR); |
575 | QFETCH(float, zR); |
576 | |
577 | // GIVEN |
578 | QVector3D v0(xO, yO, zO); |
579 | |
580 | // WHEN |
581 | QVector3D v2 = v0 / factor; |
582 | |
583 | // THEN |
584 | QCOMPARE(v2.x(), xR); |
585 | QCOMPARE(v2.y(), yR); |
586 | QCOMPARE(v2.z(), zR); |
587 | } |
588 | |
589 | void checkMultiplicationFactor_data() |
590 | { |
591 | QTest::addColumn<float>(name: "xO" ); |
592 | QTest::addColumn<float>(name: "yO" ); |
593 | QTest::addColumn<float>(name: "zO" ); |
594 | |
595 | QTest::addColumn<float>(name: "factor" ); |
596 | |
597 | QTest::addColumn<float>(name: "xR" ); |
598 | QTest::addColumn<float>(name: "yR" ); |
599 | QTest::addColumn<float>(name: "zR" ); |
600 | |
601 | QTest::newRow(dataTag: "sample_1" ) << 0.0f << -3.0f << 2.0f |
602 | << 1.0f |
603 | << 0.0f << -3.0f << 2.0f; |
604 | |
605 | QTest::newRow(dataTag: "sample_2" ) << -5.0f << 20.0f << -25.0f |
606 | << 5.0f |
607 | << -25.0f << 100.0f << -125.0f; |
608 | } |
609 | |
610 | void checkMultiplicationFactor() |
611 | { |
612 | QFETCH(float, xO); |
613 | QFETCH(float, yO); |
614 | QFETCH(float, zO); |
615 | |
616 | QFETCH(float, factor); |
617 | |
618 | QFETCH(float, xR); |
619 | QFETCH(float, yR); |
620 | QFETCH(float, zR); |
621 | |
622 | // GIVEN |
623 | QVector3D v0(xO, yO, zO); |
624 | |
625 | // WHEN |
626 | QVector3D v2 = v0 * factor; |
627 | |
628 | // THEN |
629 | QCOMPARE(v2.x(), xR); |
630 | QCOMPARE(v2.y(), yR); |
631 | QCOMPARE(v2.z(), zR); |
632 | } |
633 | |
634 | void checkEquality() |
635 | { |
636 | { |
637 | // GIVEN |
638 | QVector3D v0; |
639 | QVector3D v1; |
640 | |
641 | // THEN |
642 | QVERIFY(v0 == v1); |
643 | } |
644 | { |
645 | // GIVEN |
646 | QVector3D v0(1.0f, 2.0f, -5.0f); |
647 | QVector3D v1(1.0f, 2.0f, -5.0f); |
648 | |
649 | // THEN |
650 | QVERIFY(v0 == v1); |
651 | } |
652 | } |
653 | |
654 | void checkInequality() |
655 | { |
656 | { |
657 | // GIVEN |
658 | QVector3D v0; |
659 | QVector3D v1; |
660 | |
661 | // THEN |
662 | QVERIFY(!(v0 != v1)); |
663 | } |
664 | { |
665 | // GIVEN |
666 | QVector3D v0(1.0f, 2.0f, -5.0f); |
667 | QVector3D v1(1.0f, 5.0f, -5.0f); |
668 | |
669 | // THEN |
670 | QVERIFY(v0 != v1); |
671 | } |
672 | } |
673 | |
674 | void checkToQQVector3D() |
675 | { |
676 | { |
677 | // GIVEN |
678 | QVector3D v0; |
679 | |
680 | // WHEN |
681 | QVector3D v1 = v0; |
682 | |
683 | // THEN |
684 | QCOMPARE(v0.x(), v1.x()); |
685 | QCOMPARE(v0.y(), v1.y()); |
686 | QCOMPARE(v0.z(), v1.z()); |
687 | } |
688 | { |
689 | // GIVEN |
690 | QVector3D v0(1.0f, 2.0f, -5.0f); |
691 | |
692 | // WHEN |
693 | QVector3D v1 = v0; |
694 | |
695 | // THEN |
696 | QCOMPARE(v0.x(), v1.x()); |
697 | QCOMPARE(v0.y(), v1.y()); |
698 | QCOMPARE(v0.z(), v1.z()); |
699 | } |
700 | } |
701 | }; |
702 | |
703 | QTEST_MAIN(tst_Vector3D_Base) |
704 | |
705 | #include "tst_vector3d_base.moc" |
706 | |