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); }