MCPcopy Create free account
hub / github.com/crownengine/crown / test_vector4

Function test_vector4

src/core/unit_tests.cpp:460–539  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

458}
459
460static void test_vector4()
461{
462 {
463 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
464 const Vector4 b = { 2.7f, -1.9f, -4.1f, 1.0f };
465 const Vector4 c = a - b;
466 ENSURE(fequal(c.x, -1.5f, 0.0001f));
467 ENSURE(fequal(c.y, 6.1f, 0.0001f));
468 ENSURE(fequal(c.z, 1.8f, 0.0001f));
469 ENSURE(fequal(c.w, 4.5f, 0.0001f));
470 }
471 {
472 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
473 const Vector4 b = { 2.7f, -1.9f, -4.1f, 1.0f };
474 const Vector4 c = a + b;
475 ENSURE(fequal(c.x, 3.9f, 0.0001f));
476 ENSURE(fequal(c.y, 2.3f, 0.0001f));
477 ENSURE(fequal(c.z, -6.4f, 0.0001f));
478 ENSURE(fequal(c.w, 6.5f, 0.0001f));
479 }
480 {
481 const Vector4 a = { 1.2f, 4.2f, -2.3f, 1.5f };
482 const Vector4 b = a * 2.0f;
483 ENSURE(fequal(b.x, 2.4f, 0.0001f));
484 ENSURE(fequal(b.y, 8.4f, 0.0001f));
485 ENSURE(fequal(b.z, -4.6f, 0.0001f));
486 ENSURE(fequal(b.w, 3.0f, 0.0001f));
487 }
488 {
489 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
490 const Vector4 b = { 2.7f, -1.9f, -4.1f, 1.0f };
491 const f32 c = dot(a, b);
492 ENSURE(fequal(c, 10.19f, 0.0001f));
493 }
494 {
495 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
496 const f32 c = length_squared(a);
497 ENSURE(fequal(c, 54.62f, 0.0001f));
498 }
499 {
500 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
501 const f32 c = length(a);
502 ENSURE(fequal(c, 7.39053f, 0.0001f));
503 }
504 {
505 Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
506 normalize(a);
507 ENSURE(fequal(length(a), 1.0f, 0.00001f));
508 }
509 {
510 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
511 const Vector4 b = { 2.7f, -1.9f, -4.1f, 1.0f };
512 const float c = distance_squared(a, b);
513 ENSURE(fequal(c, 62.95f, 0.00001f));
514 }
515 {
516 const Vector4 a = { 1.2f, 4.2f, -2.3f, 5.5f };
517 const Vector4 b = { 2.7f, -1.9f, -4.1f, 1.0f };

Callers

nothing calls this directly

Calls 6

normalizeFunction · 0.85
distanceFunction · 0.85
maxFunction · 0.70
minFunction · 0.70
dotFunction · 0.50
lengthFunction · 0.50

Tested by

no test coverage detected