From dc26ed23f5cc33b79dd2adbd77f306d44cd6d660 Mon Sep 17 00:00:00 2001 From: Orange Date: Mon, 14 Oct 2024 11:32:41 +0300 Subject: [PATCH] added more unit tests --- tests/UnitTestProjection.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/UnitTestProjection.cpp b/tests/UnitTestProjection.cpp index fc2c54d..e25d66d 100644 --- a/tests/UnitTestProjection.cpp +++ b/tests/UnitTestProjection.cpp @@ -7,10 +7,17 @@ #include #include -TEST(UnitTestProjection, IsPointOnScreen) +TEST(UnitTestProjection, Projection) { - const omath::projection::Camera camera({0.f, 0.f, 0.f}, {0, 0.f, 0.f} , {1920.f, 1080.f}, 110.f, 0.1f, 500.f); + const omath::projection::Camera camera({0.f, 0.f, 0.f}, {0, 0.f, 0.f} , {1920.f, 1080.f}, 110.f, 0.375f, 5000.f); - const auto proj = camera.WorldToScreen({100, 0, 15}); - EXPECT_TRUE(proj.has_value()); + EXPECT_EQ(camera.WorldToScreen({100, 0, 0}).value(), omath::Vector2(960, 540)); + EXPECT_EQ(camera.WorldToScreen({49.23, 0, 0}).value(), omath::Vector2(960, 540)); + const auto proj = camera.WorldToScreen({100, 50, -69}); + std::print("{} {}", proj->x, proj->y); + EXPECT_EQ(camera.WorldToScreen({100, 10, 0}).value(), omath::Vector2(909.58887, 540)); + EXPECT_EQ(camera.WorldToScreen({100, 10, 8}).value(), omath::Vector2(909.58887, 499.67108)); + EXPECT_EQ(camera.WorldToScreen({100, 50, -69}).value(), omath::Vector2(707.9442, 887.83704)); + + EXPECT_FALSE(camera.WorldToScreen({-10,0, 0}).has_value()); } \ No newline at end of file