From 127bae0b78d34740702e5337eb7a0c59f712d390 Mon Sep 17 00:00:00 2001 From: Orange Date: Wed, 16 Apr 2025 18:53:31 +0300 Subject: [PATCH] added tests for source --- tests/engines/unit_test_source_engine.cpp | 36 +++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/engines/unit_test_source_engine.cpp b/tests/engines/unit_test_source_engine.cpp index c129249..eebd58e 100644 --- a/tests/engines/unit_test_source_engine.cpp +++ b/tests/engines/unit_test_source_engine.cpp @@ -27,6 +27,42 @@ TEST(UnitTestSourceEngine, UpVector) EXPECT_EQ(up, omath::source_engine::kAbsUp); } +TEST(UnitTestSourceEngine, ForwardVectorRotationYaw) +{ + omath::source_engine::ViewAngles angles; + + angles.yaw = omath::source_engine::YawAngle::FromDegrees(-90.f); + + const auto forward = omath::source_engine::ForwardVector(angles); + EXPECT_NEAR(forward.x, omath::source_engine::kAbsRight.x, 0.00001f); + EXPECT_NEAR(forward.y, omath::source_engine::kAbsRight.y, 0.00001f); + EXPECT_NEAR(forward.z, omath::source_engine::kAbsRight.z, 0.00001f); +} + +TEST(UnitTestSourceEngine, ForwardVectorRotationPitch) +{ + omath::source_engine::ViewAngles angles; + + angles.pitch = omath::source_engine::PitchAngle::FromDegrees(-89.f); + + const auto forward = omath::source_engine::ForwardVector(angles); + EXPECT_NEAR(forward.x, omath::source_engine::kAbsUp.x, 0.02f); + EXPECT_NEAR(forward.y, omath::source_engine::kAbsUp.y, 0.01f); + EXPECT_NEAR(forward.z, omath::source_engine::kAbsUp.z, 0.01f); +} + +TEST(UnitTestSourceEngine, ForwardVectorRotationRoll) +{ + omath::source_engine::ViewAngles angles; + + angles.roll = omath::source_engine::RollAngle::FromDegrees(90.f); + + const auto forward = omath::source_engine::UpVector(angles); + EXPECT_NEAR(forward.x, omath::source_engine::kAbsRight.x, 0.00001f); + EXPECT_NEAR(forward.y, omath::source_engine::kAbsRight.y, 0.00001f); + EXPECT_NEAR(forward.z, omath::source_engine::kAbsRight.z, 0.00001f); +} + TEST(UnitTestSourceEngine, ProjectTargetMovedFromCamera) { constexpr auto fov = omath::projection::FieldOfView::FromDegrees(90.f);