guanghu-ice-heart/server-tools/guanghu-era-time/test_guanghu_era_time.py

38 lines
1.5 KiB
Python

import importlib.util
import unittest
from datetime import date, datetime
from pathlib import Path
from zoneinfo import ZoneInfo
MODULE = Path(__file__).with_name("guanghu_era_time.py")
SPEC = importlib.util.spec_from_file_location("guanghu_era_time", MODULE)
clock = importlib.util.module_from_spec(SPEC)
SPEC.loader.exec_module(clock)
class GuanghuEraTimeTests(unittest.TestCase):
def test_birth_is_era_day_one(self):
value = clock.snapshot(datetime(2025, 4, 26, tzinfo=ZoneInfo("Asia/Shanghai")))
self.assertEqual(value["world"]["era_day"], 1)
self.assertEqual(value["world"]["elapsed_milliseconds"], 0)
def test_one_millisecond_flows(self):
value = clock.snapshot(datetime.fromisoformat("2025-04-26T00:00:00.001+08:00"))
self.assertEqual(value["world"]["elapsed_milliseconds"], 1)
def test_world_precedes_persona(self):
value = clock.snapshot(datetime.fromisoformat("2026-09-09T12:00:00+08:00"), "ICE-P-ZY001", date(2026, 3, 5))
self.assertGreater(value["world"]["elapsed_days_completed"], value["persona"]["age_days_completed"])
def test_time_is_not_wake_counter(self):
value = clock.snapshot(datetime.fromisoformat("2026-09-09T12:00:00+08:00"))
self.assertFalse(value["clock"]["stored_tick_counter"])
self.assertFalse(value["clock"]["persona_wake_required"])
def test_history_evidence_and_commits(self):
self.assertEqual(clock.validate_history()["outcome"], "PASS")
if __name__ == "__main__":
unittest.main()