CultLib/tests/vectors/document-variants-c2a
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-11 15:07:48 +00:00
..
c2a-written-ids-directory Tests: regenerate the C2a gate vectors with the fixed clock 2026-10-27 07:59:07 +01:00
old-reader-probes Tests: C# refusal lines carry their source and the gate counts them distinct 2026-10-27 09:35:23 +01:00
old-writer-probes Gate: the 1.0.60 writer keys its records alpha, beta and list, so the reference list resolves 2026-10-23 13:23:57 +02:00
readability Single-file readers refuse duplicate keys in all four runtimes; c0 bad-canonical row (#110) 2026-11-11 15:07:48 +00:00
c2a-written-ids.msgpack Tests: regenerate the C2a gate vectors with the fixed clock 2026-10-27 07:59:07 +01:00
old-reader-refusal.sh Tests: C# refusal lines carry their source and the gate counts them distinct 2026-10-27 09:35:23 +01:00
README.md Tests: regenerate the C2a gate vectors with the fixed clock 2026-10-27 07:59:07 +01:00
v3-base.msgpack TypeScript, Python and Rust read the v3 header and keep it on rewrite 2026-09-29 18:27:17 +02:00

document-variants-c2a vectors

c2a-written-ids.msgpack and c2a-written-ids-directory/ are what C2aGateWriter writes: one record holding element ids, as a single-file store (header v3) and as a directory store (header v5). The writer stamps every record with one fixed clock, so the bytes are the same on every run, and C2aGateWriter.TheCommittedVectorsAreWhatC2aWrites compares the live output to these files byte for byte (the directory as relative path and bytes; *.lock files hold no state and are left out).

Regenerate them only when C2a's format moves on purpose: CULTLIB_GATE_OUT=<empty dir> dotnet test tests/GameCult.Caching.Tests --filter FullyQualifiedName~C2aStamps, then copy the single file and the directory store (the page under store.cc.records/ is named by its content hash) over these.

old-reader-refusal.sh is the gate that reads them with the pinned older readers; its header says how to run it.