diff --git a/tests/AcDream.App.Tests/Rendering/CornerFloodReplayTests.cs b/tests/AcDream.App.Tests/Rendering/CornerFloodReplayTests.cs index 5c6be3b6..34686a15 100644 --- a/tests/AcDream.App.Tests/Rendering/CornerFloodReplayTests.cs +++ b/tests/AcDream.App.Tests/Rendering/CornerFloodReplayTests.cs @@ -199,6 +199,7 @@ public class CornerFloodReplayTests /// [Fact] [Trait("Lane", "InstalledDat")] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_TraceGoodVsGlitchStep() { var datDir = ResolveDatDir(); @@ -500,6 +501,7 @@ public class CornerFloodReplayTests /// [Fact] [Trait("Lane", "InstalledDat")] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_Hop2Microscope() { var datDir = ResolveDatDir(); @@ -631,6 +633,7 @@ public class CornerFloodReplayTests /// [Fact] [Trait("Lane", "InstalledDat")] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_CornerPress_FloodAcrossDoorwayPlane() { var datDir = ResolveDatDir(); diff --git a/tests/AcDream.App.Tests/Rendering/HouseExitWalkReplayTests.cs b/tests/AcDream.App.Tests/Rendering/HouseExitWalkReplayTests.cs index 5cef3074..cd4d42d4 100644 --- a/tests/AcDream.App.Tests/Rendering/HouseExitWalkReplayTests.cs +++ b/tests/AcDream.App.Tests/Rendering/HouseExitWalkReplayTests.cs @@ -437,6 +437,7 @@ public class HouseExitWalkReplayTests /// Full per-step table for the handoff doc. [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_ExitWalk_PerStepTable() { var steps = RunExitWalk(); @@ -457,6 +458,7 @@ public class HouseExitWalkReplayTests /// cull ALL outdoor content — terrain included, not just the player). /// [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_StaleRootWindow_EyeJustOutside() { var datDir = CornerFloodReplayTests.ResolveDatDir(); diff --git a/tests/AcDream.App.Tests/Rendering/Issue130DoorwayStripTests.cs b/tests/AcDream.App.Tests/Rendering/Issue130DoorwayStripTests.cs index bddea864..e606e75c 100644 --- a/tests/AcDream.App.Tests/Rendering/Issue130DoorwayStripTests.cs +++ b/tests/AcDream.App.Tests/Rendering/Issue130DoorwayStripTests.cs @@ -57,7 +57,7 @@ public class Issue130DoorwayStripTests } [Fact] - public void Diagnostic_ExitDoorTopEdge_GateVsAperture() + public void ExitDoorTopEdge_GateCoversLiftedApertureWithinPixelTolerance() { var datDir = CornerFloodReplayTests.ResolveDatDir(); if (datDir is null) { _out.WriteLine("SKIP: dats unavailable"); Assert.Fail("Lane=InstalledDat requires an installed retail DAT directory; see docs/release-gate.md."); } diff --git a/tests/AcDream.App.Tests/Rendering/Issue181VisFlapReplayTests.cs b/tests/AcDream.App.Tests/Rendering/Issue181VisFlapReplayTests.cs index 3796659b..dc0a69dd 100644 --- a/tests/AcDream.App.Tests/Rendering/Issue181VisFlapReplayTests.cs +++ b/tests/AcDream.App.Tests/Rendering/Issue181VisFlapReplayTests.cs @@ -117,6 +117,7 @@ public class Issue181VisFlapReplayTests } [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_SubMillimeterEyePerturbation_MustNotChangeAdmission() { var datDir = CornerFloodReplayTests.ResolveDatDir(); diff --git a/tests/AcDream.App.Tests/Rendering/Issue95DungeonFloodDiagnosticTests.cs b/tests/AcDream.App.Tests/Rendering/Issue95DungeonFloodDiagnosticTests.cs index fabbc753..014b9e22 100644 --- a/tests/AcDream.App.Tests/Rendering/Issue95DungeonFloodDiagnosticTests.cs +++ b/tests/AcDream.App.Tests/Rendering/Issue95DungeonFloodDiagnosticTests.cs @@ -44,6 +44,7 @@ public class Issue95DungeonFloodDiagnosticTests } [Fact] + [Trait("Purpose", "Diagnostic")] public void Measure_DungeonFlood_VisibleCellCount() { var datDir = CornerFloodReplayTests.ResolveDatDir(); diff --git a/tests/AcDream.Core.Tests/Conformance/Issue112MembershipTests.cs b/tests/AcDream.Core.Tests/Conformance/Issue112MembershipTests.cs index 2f3c95ac..fa1ae9d7 100644 --- a/tests/AcDream.Core.Tests/Conformance/Issue112MembershipTests.cs +++ b/tests/AcDream.Core.Tests/Conformance/Issue112MembershipTests.cs @@ -224,6 +224,7 @@ public sealed class Issue112MembershipTests } [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_ReplayCapturedEntryWalk() { // Replays the cottage-112-capture1.log entry walk (world → A9B3-local = diff --git a/tests/AcDream.Core.Tests/Conformance/Issue113DoorVanishDiagnosticTests.cs b/tests/AcDream.Core.Tests/Conformance/Issue113DoorVanishDiagnosticTests.cs index 6ffd3b24..a5c1731f 100644 --- a/tests/AcDream.Core.Tests/Conformance/Issue113DoorVanishDiagnosticTests.cs +++ b/tests/AcDream.Core.Tests/Conformance/Issue113DoorVanishDiagnosticTests.cs @@ -30,6 +30,7 @@ public sealed class Issue113DoorVanishDiagnosticTests private const uint DoorSetupId = 0x020019FFu; [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpDoorSetup_DrawingBspCoverage() { var datDir = ConformanceDats.ResolveDatDir(); diff --git a/tests/AcDream.Core.Tests/Conformance/Issue113PhantomStairsDumpTests.cs b/tests/AcDream.Core.Tests/Conformance/Issue113PhantomStairsDumpTests.cs index 3b6226f4..7db86bba 100644 --- a/tests/AcDream.Core.Tests/Conformance/Issue113PhantomStairsDumpTests.cs +++ b/tests/AcDream.Core.Tests/Conformance/Issue113PhantomStairsDumpTests.cs @@ -39,6 +39,7 @@ public sealed class Issue113PhantomStairsDumpTests private static readonly Vector3 GapPoint = new(184.915f, 82.464f, 116.48f); [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpA9B3_Buildings_And_InteriorCells() { var datDir = ConformanceDats.ResolveDatDir(); @@ -196,6 +197,7 @@ public sealed class Issue113PhantomStairsDumpTests /// the shell?). /// [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpA9B3_Statics_OutdoorStabs_And_ShellModel() { var datDir = ConformanceDats.ResolveDatDir(); @@ -342,6 +344,7 @@ public sealed class Issue113PhantomStairsDumpTests /// + per-model stair scan + cells near the user's viewpoint. /// [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpAAB3_Buildings_And_StairScan() { var datDir = ConformanceDats.ResolveDatDir(); @@ -441,6 +444,7 @@ public sealed class Issue113PhantomStairsDumpTests /// Also localize the model's ramps to know which face the stairs are on. /// [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpAAB3_Watchtower_DoorAlignment_And_RampFaces() { var datDir = ConformanceDats.ResolveDatDir(); diff --git a/tests/AcDream.Core.Tests/Conformance/Issue119TowerDumpTests.cs b/tests/AcDream.Core.Tests/Conformance/Issue119TowerDumpTests.cs index 89e2d5cd..88cc6727 100644 --- a/tests/AcDream.Core.Tests/Conformance/Issue119TowerDumpTests.cs +++ b/tests/AcDream.Core.Tests/Conformance/Issue119TowerDumpTests.cs @@ -35,6 +35,7 @@ public sealed class Issue119TowerDumpTests private static readonly Vector3 TowerSpot = new(107.4f, 59.0f, 112.0f); // AAB3-local, from the [snap] [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpTowerCellNeighbourhood() { var datDir = ConformanceDats.ResolveDatDir(); @@ -144,6 +145,7 @@ public sealed class Issue119TowerDumpTests /// VISIBLE sibling parts failing, or the whole-part placement is off. /// [Theory] + [Trait("Purpose", "Diagnostic")] [InlineData(0x020005D8u)] [InlineData(0x020003F2u)] public void DumpTowerStairSetups(uint setupId) diff --git a/tests/AcDream.Core.Tests/Conformance/Issue119UpNullGfxObjDumpTests.cs b/tests/AcDream.Core.Tests/Conformance/Issue119UpNullGfxObjDumpTests.cs index 949d1d03..b94ab3df 100644 --- a/tests/AcDream.Core.Tests/Conformance/Issue119UpNullGfxObjDumpTests.cs +++ b/tests/AcDream.Core.Tests/Conformance/Issue119UpNullGfxObjDumpTests.cs @@ -33,6 +33,7 @@ public sealed class Issue119UpNullGfxObjDumpTests [Theory] [MemberData(nameof(UpNullIds))] + [Trait("Purpose", "Diagnostic")] public void DumpUpNullGfxObj(uint id) { var datDir = ConformanceDats.ResolveDatDir(); diff --git a/tests/AcDream.Core.Tests/Items/ClientObjectTableTests.cs b/tests/AcDream.Core.Tests/Items/ClientObjectTableTests.cs index 4d06dec1..d6cb1af2 100644 --- a/tests/AcDream.Core.Tests/Items/ClientObjectTableTests.cs +++ b/tests/AcDream.Core.Tests/Items/ClientObjectTableTests.cs @@ -767,7 +767,7 @@ public sealed class ClientObjectTableTests } /// - /// SCRATCH G4 reproduction: a vendor BUY's real wire shape is a fresh + /// A vendor BUY's real wire shape is a fresh /// CreateObject (a BRAND NEW guid our client has never seen before — /// ACE's Player_Commerce.cs FinalizeBuyTransaction/ItemProfileToWorldObjects /// mints a new WorldObject for common stock, distinct from the shop-list @@ -783,7 +783,7 @@ public sealed class ClientObjectTableTests /// object FIRST) already proves. /// [Fact] - public void SCRATCH_BuyShapedFreshGuidCreateObjectThenContainId_FinalOrder() + public void BuyShapedFreshGuidCreateThenPlacementZeroEcho_InsertsAtRetailListHead() { var table = new ClientObjectTable(); const uint pack = 0x50000001u; diff --git a/tests/AcDream.Core.Tests/Physics/CellarUpTrajectoryReplayTests.cs b/tests/AcDream.Core.Tests/Physics/CellarUpTrajectoryReplayTests.cs index 592131a2..e51ccd15 100644 --- a/tests/AcDream.Core.Tests/Physics/CellarUpTrajectoryReplayTests.cs +++ b/tests/AcDream.Core.Tests/Physics/CellarUpTrajectoryReplayTests.cs @@ -737,6 +737,7 @@ public class CellarUpTrajectoryReplayTests : IDisposable /// Always passes; this is a one-shot tool, not a regression. /// [Fact] + [Trait("Purpose", "Diagnostic")] public void LiveCompare_FirstCap_DiagnosticDump() { PhysicsDiagnostics.ProbeResolveEnabled = true; diff --git a/tests/AcDream.Core.Tests/Physics/DoorBugTrajectoryReplayTests.cs b/tests/AcDream.Core.Tests/Physics/DoorBugTrajectoryReplayTests.cs index 25eebc6b..7374580c 100644 --- a/tests/AcDream.Core.Tests/Physics/DoorBugTrajectoryReplayTests.cs +++ b/tests/AcDream.Core.Tests/Physics/DoorBugTrajectoryReplayTests.cs @@ -162,6 +162,7 @@ public class DoorBugTrajectoryReplayTests /// [Fact] [Trait("Lane", "InstalledDat")] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_Tick22760_DumpEngineInternals() { var datDir = ResolveDatDir(); @@ -215,6 +216,7 @@ public class DoorBugTrajectoryReplayTests [Fact] [Trait("Lane", "InstalledDat")] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_Tick13558_DumpEngineInternals() { var datDir = ResolveDatDir(); @@ -686,6 +688,7 @@ public class DoorBugTrajectoryReplayTests /// / nothing. /// [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_CottagePolys_NearWalkthroughPosition() { var fixturePath = Path.Combine(SolutionRoot(), diff --git a/tests/AcDream.Core.Tests/Physics/Issue108CellarAscentViewerReplayTests.cs b/tests/AcDream.Core.Tests/Physics/Issue108CellarAscentViewerReplayTests.cs index 5ccc40eb..6d41241c 100644 --- a/tests/AcDream.Core.Tests/Physics/Issue108CellarAscentViewerReplayTests.cs +++ b/tests/AcDream.Core.Tests/Physics/Issue108CellarAscentViewerReplayTests.cs @@ -281,6 +281,7 @@ public class Issue108CellarAscentViewerReplayTests /// below grade, and the branch column attributes the demote site. /// [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_CellarAscent_PerStepTable() { var steps = RunAscent(BoomDistance, pathLagMeters: 0f); @@ -303,6 +304,7 @@ public class Issue108CellarAscentViewerReplayTests /// Boom-distance + damping-lag sweep: how wide is the window across poses? [Fact] + [Trait("Purpose", "Diagnostic")] public void Diagnostic_CellarAscent_PoseSweep() { foreach (float dist in new[] { 2.61f, 5.0f }) diff --git a/tests/AcDream.Core.Tests/Physics/Issue147ArwicBuildingsDumpTests.cs b/tests/AcDream.Core.Tests/Physics/Issue147ArwicBuildingsDumpTests.cs index 4e9d2cf0..d31b9fdd 100644 --- a/tests/AcDream.Core.Tests/Physics/Issue147ArwicBuildingsDumpTests.cs +++ b/tests/AcDream.Core.Tests/Physics/Issue147ArwicBuildingsDumpTests.cs @@ -24,6 +24,7 @@ public sealed class Issue147ArwicBuildingsDumpTests public Issue147ArwicBuildingsDumpTests(ITestOutputHelper o) => _out = o; [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpArwicBuildingsAndObjects() { var datDir = Env.GetEnvironmentVariable("ACDREAM_DAT_DIR") diff --git a/tests/AcDream.Core.Tests/Physics/Issue265SteepSlopeCaptureBisectTests.cs b/tests/AcDream.Core.Tests/Physics/Issue265SteepSlopeCaptureBisectTests.cs index bc04f05d..4fad00c7 100644 --- a/tests/AcDream.Core.Tests/Physics/Issue265SteepSlopeCaptureBisectTests.cs +++ b/tests/AcDream.Core.Tests/Physics/Issue265SteepSlopeCaptureBisectTests.cs @@ -360,6 +360,7 @@ public class Issue265SteepSlopeCaptureBisectTests /// the correct future regression assertion) is still being decided. /// [Fact] + [Trait("Purpose", "Diagnostic")] public void RealCapturedRoofLanding_CharacterizeCurrentBehavior() { PhysicsDiagnostics.ResetForTest(); diff --git a/tests/AcDream.Core.Tests/Physics/Issue337NeftetRockGeometryInspectionTests.cs b/tests/AcDream.Core.Tests/Physics/Issue337NeftetRockGeometryInspectionTests.cs index 3a220d36..235b6882 100644 --- a/tests/AcDream.Core.Tests/Physics/Issue337NeftetRockGeometryInspectionTests.cs +++ b/tests/AcDream.Core.Tests/Physics/Issue337NeftetRockGeometryInspectionTests.cs @@ -68,6 +68,7 @@ public sealed class Issue337NeftetRockGeometryInspectionTests int BspPolys); [Fact] + [Trait("Purpose", "Diagnostic")] public void DumpNeftetLandblockStaticsAndProbeTheWedgePoint() { System.Globalization.CultureInfo.CurrentCulture =