#include "RuntimeClock.h" #include #include namespace { int gFailures = 0; void Expect(bool condition, const char* message) { if (condition) return; std::cerr << "FAIL: " << message << "\n"; ++gFailures; } void TestUtcSecondsOfDay() { const RuntimeClockSnapshot midnight = MakeRuntimeClockSnapshot(0); Expect(midnight.utcTimeSeconds == 0.0, "Unix epoch starts at UTC midnight"); const RuntimeClockSnapshot midday = MakeRuntimeClockSnapshot(12 * 3600 + 34 * 60 + 56); Expect(midday.utcTimeSeconds == 45296.0, "UTC time of day is seconds since midnight"); } void TestOffsetLooksLikeTimezoneOffset() { const RuntimeClockSnapshot snapshot = MakeRuntimeClockSnapshot(12 * 3600); Expect(std::fmod(snapshot.utcOffsetSeconds, 60.0) == 0.0, "UTC offset is minute-aligned"); Expect(snapshot.utcOffsetSeconds >= -14.0 * 3600.0 && snapshot.utcOffsetSeconds <= 14.0 * 3600.0, "UTC offset is in the normal timezone range"); } } int main() { TestUtcSecondsOfDay(); TestOffsetLooksLikeTimezoneOffset(); if (gFailures != 0) { std::cerr << gFailures << " RuntimeClock test failure(s).\n"; return 1; } std::cout << "RuntimeClock tests passed.\n"; return 0; }