Browse Source

camera unit test tweak

undefined
Benjamin ‘Touky’ Huet Sam Hocevar <sam@hocevar.net> 11 years ago
parent
commit
48e8ce206e
1 changed files with 18 additions and 15 deletions
  1. +18
    -15
      test/unit/camera.cpp

+ 18
- 15
test/unit/camera.cpp View File

@@ -37,7 +37,7 @@ LOLUNIT_FIXTURE(CameraTest)


void SetUp() void SetUp()
{ {
eye = vec3(0.f, 50.f, 50.f);
eye = vec3(0.f, 0.f, 50.f);
target = vec3(0.f); target = vec3(0.f);
up = vec3(0.f, 1.f, 0.f); up = vec3(0.f, 1.f, 0.f);
m_lookat = mat4::lookat(eye, target, up); m_lookat = mat4::lookat(eye, target, up);
@@ -79,6 +79,9 @@ LOLUNIT_FIXTURE(CameraTest)
TEST_VECTOR(eye, tc.GetPosition()); TEST_VECTOR(eye, tc.GetPosition());
TEST_VECTOR(target, tc.GetTarget()); TEST_VECTOR(target, tc.GetTarget());
TEST_VECTOR(up, tc.GetUp()); TEST_VECTOR(up, tc.GetUp());

tc.UseTarget(false);
TEST_VECTOR(vec3(0.f, 0.f, 49.f), tc.GetTarget());
} }


#define TEST_MATRIX(m0, m1) \ #define TEST_MATRIX(m0, m1) \
@@ -105,28 +108,28 @@ LOLUNIT_FIXTURE(CameraTest)


LOLUNIT_TEST(SetProjectionTest) LOLUNIT_TEST(SetProjectionTest)
{ {
mat4 refmx = mat4::perspective(fov, screen_size, screen_ratio, near, far);

tc.SetProjection(refmx);
TEST_MATRIX(refmx, tc.GetProjection());
mat4 refmx = mat4::perspective(fov, screen_size, screen_size * screen_ratio, near, far);


tc.SetProjection(fov, near, far);
tc.SetProjection(fov, near, far, screen_size, screen_ratio);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
LOLUNIT_ASSERT_DOUBLES_EQUAL(fov, tc.GetFov(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(fov, tc.GetFov(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_size, tc.GetScreenSize(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_size, tc.GetScreenSize(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());


tc.SetProjection(fov, near, far, screen_size, screen_ratio);
tc.SetProjection(fov, near, far);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
LOLUNIT_ASSERT_DOUBLES_EQUAL(fov, tc.GetFov(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(fov, tc.GetFov(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_size, tc.GetScreenSize(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_size, tc.GetScreenSize(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());

tc.SetProjection(refmx);
TEST_MATRIX(refmx, tc.GetProjection());


tc.SetFov(fov); tc.SetFov(fov);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
@@ -135,7 +138,7 @@ LOLUNIT_FIXTURE(CameraTest)
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());


tc.SetScreenInfos(screen_size); tc.SetScreenInfos(screen_size);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
@@ -144,7 +147,7 @@ LOLUNIT_FIXTURE(CameraTest)
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());


tc.SetScreenInfos(screen_size, screen_ratio); tc.SetScreenInfos(screen_size, screen_ratio);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
@@ -153,7 +156,7 @@ LOLUNIT_FIXTURE(CameraTest)
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());


tc.SetDrawInfos(far); tc.SetDrawInfos(far);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
@@ -162,7 +165,7 @@ LOLUNIT_FIXTURE(CameraTest)
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());


tc.SetDrawInfos(near, far); tc.SetDrawInfos(near, far);
TEST_MATRIX(refmx, tc.GetProjection()); TEST_MATRIX(refmx, tc.GetProjection());
@@ -171,7 +174,7 @@ LOLUNIT_FIXTURE(CameraTest)
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());


is_shifted = true; is_shifted = true;
refmx = mat4::shifted_perspective(fov, screen_size, screen_ratio, far - near); refmx = mat4::shifted_perspective(fov, screen_size, screen_ratio, far - near);
@@ -183,7 +186,7 @@ LOLUNIT_FIXTURE(CameraTest)
LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(screen_ratio, tc.GetScreenRatio(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(near, tc.GetNear(), 1.e-5f);
LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f); LOLUNIT_ASSERT_DOUBLES_EQUAL(far, tc.GetFar(), 1.e-5f);
LOLUNIT_ASSERT(is_shifted != tc.IsShifted());
LOLUNIT_ASSERT(is_shifted == tc.IsShifted());
} }
}; };




Loading…
Cancel
Save