diff options
Diffstat (limited to 'StarsEx/test')
-rw-r--r-- | StarsEx/test/Stardate.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/StarsEx/test/Stardate.cpp b/StarsEx/test/Stardate.cpp new file mode 100644 index 0000000..fb95562 --- /dev/null +++ b/StarsEx/test/Stardate.cpp @@ -0,0 +1,60 @@ +#include <gtest/gtest.h> + +#include <Clock.h> +#include <Stardate.h> + +namespace ng = starshatter::engine; + + +TEST(StarsEx, MissionTimeIsGameTime) +{ + ASSERT_TRUE(Clock::Init()); + auto* clock = Clock::GetInstance(); + EXPECT_NEAR(0.0l, ng::MissionTime(), 0.001l); + clock->SkipGameTime(0.05); + EXPECT_NEAR(0.05l, ng::MissionTime(), 0.001l); + clock->SkipGameTime(0.05); + EXPECT_NEAR(0.10l, ng::MissionTime(), 0.001l); + Clock::Close(); +} + + +TEST(StarsEx, OperationTimeIsMissionOffset) +{ + ASSERT_TRUE(Clock::Init()); + auto* clock = Clock::GetInstance(); + EXPECT_NEAR(0.0l, ng::OperationTime(), 0.001l); + ng::SetMissionStart(1000.0l); + EXPECT_NEAR(1000.0l, ng::OperationTime(), 0.001l); + clock->SkipGameTime(0.05); + EXPECT_NEAR(1000.05l, ng::OperationTime(), 0.001l); + ng::SetMissionStart(1000.0l, true); + EXPECT_NEAR(2000.05l, ng::OperationTime(), 0.001l); + Clock::Close(); +} + + +TEST(StarsEx, CurrentTimeIsOperationAndEpoch) +{ + ASSERT_TRUE(Clock::Init()); + auto* clock = Clock::GetInstance(); + EXPECT_NEAR(ng::Epoch(), ng::CurrentTime(), 0.001l); + ng::SetOperationStart(1000.0l); + EXPECT_NEAR(ng::Epoch() + 1000.0l, ng::CurrentTime(), 0.001l); + ng::SetMissionStart(500.0l); + EXPECT_NEAR(ng::Epoch() + 1500.0l, ng::CurrentTime(), 0.001l); + clock->SkipGameTime(0.05); + EXPECT_NEAR(ng::Epoch() + 1500.05l, ng::CurrentTime(), 0.001l); + ng::SetOperationStart(1000.0l, true); + EXPECT_NEAR(ng::Epoch() + 2500.05l, ng::CurrentTime(), 0.001l); + Clock::Close(); +} + + +TEST(StarsEx, FormatOperationTime) +{ + ASSERT_TRUE(Clock::Init()); + auto* clock = Clock::GetInstance(); + EXPECT_EQ("Day 1, 00:00:00", ng::OperationTime().Format()); + Clock::Close(); +} |