using AcDream.App.Tests.Rendering; using AcDream.App.Rendering.Walk; using DatReaderWriter; using DatReaderWriter.Options; namespace AcDream.App.Tests.Rendering.Walk; /// /// FW1's conformance gate, first slice: replay pose-stamped oracle /// fixtures through the ported walk and require the identical event /// sequence. The projection-light interior fixtures gate first /// (docs/research/2026-08-30-fw-walk-oracle/README.md, posed round); /// the outdoor/landscape fixtures join as the landscape world build /// lands. /// [Trait("Lane", "InstalledDat")] public sealed class WalkTraceConformanceTests { private sealed class Recorder : IWalkEventSink { public readonly List Events = new(); public void Emit(in WalkEvent walkEvent) => Events.Add(walkEvent); } private static DatCollection OpenDats() { string? datDir = CornerFloodReplayTests.ResolveDatDir(); if (datDir is null) { Assert.Fail("Lane=InstalledDat requires an installed retail DAT directory; see docs/release-gate.md."); } return new DatCollection(datDir!, DatAccessType.Read); } [Fact] public void Foundry_deep_reproduces_every_complete_frame_exactly() { IReadOnlyList frames = WalkOracleTrace.Load("posed/foundry-deep"); Assert.NotEmpty(frames); using DatCollection dats = OpenDats(); Dictionary cells = WalkWorldDatAdapter.BuildInteriorCells(dats, 0xA9B40000u); var landscape = new WalkLandscape { MidWidth = 1, Blocks = new WalkLandBlock?[1] }; foreach (WalkOracleFrame frame in frames) { Assert.NotNull(frame.Pose); WalkCell camera = Assert.Contains(frame.Pose!.CellId, cells); var ctx = new WalkTraceReplayContext(frame.Pose, cells); var walk = new RetailFrameWalk(); var recorder = new Recorder(); walk.WalkFrame(frame.Pose.CellId, camera, landscape, ctx, recorder); Assert.Equal( WalkTraceReplayContext.Signature(frame), WalkTraceReplayContext.Signature(recorder.Events)); } } }