ENV python=3.14.4 platform=macOS-27.0.1-arm64-arm-64bit-Mach-O
{"scenario": "as-known-before-correction", "actual": 10000, "expected": 10000, "pass": true}
{"scenario": "first-retroactive-correction", "actual": 8000, "expected": 8000, "pass": true}
{"scenario": "second-retroactive-correction", "actual": 9000, "expected": 9000, "pass": true}
{"scenario": "old-perspective-survives-new-records", "actual": 10000, "expected": 10000, "pass": true}
{"scenario": "before-valid-boundary", "actual": 10000, "expected": 10000, "pass": true}
{"scenario": "at-valid-boundary", "actual": 9000, "expected": 9000, "pass": true}
{"scenario": "before-record-boundary", "actual": 10000, "expected": 10000, "pass": true}
{"scenario": "at-record-boundary", "actual": 8000, "expected": 8000, "pass": true}
{"scenario": "before-first-record-is-unknown", "actual": null, "expected": null, "pass": true}
{"scenario": "valid-domain-end-is-excluded", "actual": null, "expected": null, "pass": true}
{"scenario": "valid-domain-start-is-included", "actual": 10000, "expected": 10000, "pass": true}
{"scenario": "outside-valid-domain-is-unknown", "actual": null, "expected": null, "pass": true}
{"scenario": "empty-valid-interval", "rejected": "ValueError", "reason": "empty or reverse valid interval", "pass": true}
{"scenario": "reverse-valid-interval", "rejected": "ValueError", "reason": "empty or reverse valid interval", "pass": true}
{"scenario": "overlapping-valid-segments", "rejected": "ValueError", "reason": "valid intervals have gap, overlap or wrong order", "pass": true}
{"scenario": "gap-in-valid-segments", "rejected": "ValueError", "reason": "valid intervals have gap, overlap or wrong order", "pass": true}
{"scenario": "duplicate-record-time", "rejected": "ValueError", "reason": "record time must increase strictly", "pass": true}
{"scenario": "backdated-record-insertion", "rejected": "ValueError", "reason": "record time must increase strictly", "pass": true}
{"scenario": "naive-record-query", "rejected": "ValueError", "reason": "UTC-aware record timestamp required", "pass": true}
{"scenario": "overwrite-old-snapshot", "rejected": "FrozenInstanceError", "reason": "cannot assign to field 'cents'", "pass": true}
{"scenario": "failed-writes-leave-history-intact", "actual": true, "expected": true, "pass": true}
{"scenario": "latest-only-cannot-reproduce-old-price", "actual": false, "expected": false, "pass": true}
MATRIX {"valid_on": "2026-02-20", "known_prices": [["2026-01-01T00:00:00+00:00", 10000], ["2026-03-15T00:00:00+00:00", 8000], ["2026-04-05T00:00:00+00:00", 9000]], "currency": "CNY", "unit": "cent/day"}
PASS 12: 22 scenarios; complete snapshots, half-open time semantics, no tamper/concurrency guarantee
