void Vector3fTest::testUnitize() { Vector3f inputA(-3.3f, 2.2f, 8.8f); Vector3f expectedA(-0.341881729f, 0.227921152, 0.911684611f); float delta = 0.000005f; Vector3f actualA = inputA.unit(); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.x, actualA.x, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.y, actualA.y, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.z, actualA.z, delta); inputA.unitize(); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.x, inputA.x, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.y, inputA.y, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.z, inputA.z, delta); Vector3f inputB; Vector3f expectedB; Vector3f actualB = inputB.unit(); CPPUNIT_ASSERT_EQUAL(expectedB.x, actualB.x); CPPUNIT_ASSERT_EQUAL(expectedB.y, actualB.y); CPPUNIT_ASSERT_EQUAL(expectedB.z, actualB.z); inputB.unitize(); CPPUNIT_ASSERT_EQUAL(expectedB.x, inputB.x); CPPUNIT_ASSERT_EQUAL(expectedB.y, inputB.y); CPPUNIT_ASSERT_EQUAL(expectedB.z, inputB.z); }
void RectangularMatrixTest::constructFromDiagonal() { Vector3 diagonal(-1.0f, 5.0f, 11.0f); Matrix3x4 expectedA(Vector4(-1.0f, 0.0f, 0.0f, 0.0f), Vector4( 0.0f, 5.0f, 0.0f, 0.0f), Vector4( 0.0f, 0.0f, 11.0f, 0.0f)); CORRADE_COMPARE(Matrix3x4::fromDiagonal(diagonal), expectedA); Matrix4x3 expectedB(Vector3(-1.0f, 0.0f, 0.0f), Vector3( 0.0f, 5.0f, 0.0f), Vector3( 0.0f, 0.0f, 11.0f), Vector3( 0.0f, 0.0f, 0.0f)); CORRADE_COMPARE(Matrix4x3::fromDiagonal(diagonal), expectedB); }
void Vector3fTest::testScaling() { Vector3f inputA(-3.3f, 2.2f, 8.8f); float inputFactor = 5.64f; Vector3f expectedA(-18.612f, 12.408f, 49.632f); float delta = 0.000005f; Vector3f actualA = inputA * inputFactor; CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.x, actualA.x, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.y, actualA.y, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.z, actualA.z, delta); inputA *= inputFactor; CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.x, inputA.x, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.y, inputA.y, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.z, inputA.z, delta); Vector3f inputB(-3.3f, 2.2f, 8.8f); Vector3f expectedB(-0.585106382978723f, 0.390070921985816f, 1.56028368794326f); Vector3f actualB = inputB / inputFactor; CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.x, actualB.x, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.y, actualB.y, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.z, actualB.z, delta); inputB /= inputFactor; CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.x, inputB.x, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.y, inputB.y, delta); CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.z, inputB.z, delta); }