Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
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);
}