test: separate diagnostic apparatus from release gates

This commit is contained in:
Erik 2026-08-18 11:06:08 +02:00
parent 8f490240d4
commit c1a905004a
33 changed files with 527 additions and 24 deletions

View file

@ -21,6 +21,7 @@ public class CottageDoorwayCharacterizationTests
public CottageDoorwayCharacterizationTests(ITestOutputHelper output) => _out = output;
[Fact]
[Trait("Purpose", "Diagnostic")]
public void Characterize_CottageNeighborhood_PrintStructure()
{
var datDir = ConformanceDats.ResolveDatDir();
@ -65,6 +66,7 @@ public class CottageDoorwayCharacterizationTests
public const uint OutdoorLandcell0031 = 0xA9B40031u;
[Fact]
[Trait("Purpose", "Diagnostic")]
public void Characterize_Doorway_FindInteriorPoints()
{
var datDir = ConformanceDats.ResolveDatDir();

View file

@ -16,6 +16,7 @@ namespace AcDream.Core.Tests.Conformance;
/// landblock have a LandBlock (0xXXYYFFFF) terrain record at all, or only
/// LandBlockInfo + EnvCells? Output-only — no assertions.
/// </summary>
[Trait("Purpose", "Diagnostic")]
public sealed class DungeonLandblockDatProbeTests
{
private readonly ITestOutputHelper _out;

View file

@ -20,6 +20,7 @@ namespace AcDream.Core.Tests.Conformance;
/// these falloffs ARE what retail reads (modulo any load-time transform, settled
/// separately in the decomp). Output-only — no assertions; read the log.
/// </summary>
[Trait("Purpose", "Diagnostic")]
public sealed class HoltburgTorchFalloffProbeTests
{
private readonly ITestOutputHelper _out;

View file

@ -70,6 +70,7 @@ public sealed class Issue113DoorVanishDiagnosticTests
/// vertical door-sized quads.
/// </summary>
[Fact]
[Trait("Purpose", "Diagnostic")]
public void DumpHoltburgBuildings_OrphanGeometry()
{
var datDir = ConformanceDats.ResolveDatDir();
@ -191,7 +192,8 @@ public sealed class Issue113DoorVanishDiagnosticTests
/// must move.
/// </summary>
[Fact]
public void ReplicateProductionEmission_OnPortalFills()
[Trait("Purpose", "Diagnostic")]
public void Diagnostic_ReplicateProductionEmission_OnPortalFills()
{
var datDir = ConformanceDats.ResolveDatDir();
if (datDir is null) { _out.WriteLine("dats unavailable — skipped"); return; }
@ -237,6 +239,7 @@ public sealed class Issue113DoorVanishDiagnosticTests
/// which is exactly why retail shows doors but not the ramp.
/// </summary>
[Fact]
[Trait("Purpose", "Diagnostic")]
public void DumpPortalFillSurfaceTypes()
{
var datDir = ConformanceDats.ResolveDatDir();
@ -282,6 +285,7 @@ public sealed class Issue113DoorVanishDiagnosticTests
/// the phantom geometry, for type-model comparison against the door.
/// </summary>
[Fact]
[Trait("Purpose", "Diagnostic")]
public void DumpControls_HallAndCottage()
{
var datDir = ConformanceDats.ResolveDatDir();

View file

@ -287,6 +287,7 @@ public sealed class Issue113PhantomStairsDumpTests
/// sphere STRADDLES this plane (|dist| &lt; radius + 0.0002, pc:310090-310120).
/// </summary>
[Fact]
[Trait("Purpose", "Diagnostic")]
public void Dump_Cell104_ExteriorPortalPlane_Vs_GapPoint()
{
var datDir = ConformanceDats.ResolveDatDir();
@ -559,6 +560,7 @@ public sealed class Issue113PhantomStairsDumpTests
/// printed top→bottom DESCENDING (north up).
/// </summary>
[Fact]
[Trait("Purpose", "Diagnostic")]
public void DumpAAB3_Watchtower_TopDownMap()
{
var datDir = ConformanceDats.ResolveDatDir();
@ -679,6 +681,7 @@ public sealed class Issue113PhantomStairsDumpTests
/// retail skips and our building-mesh extraction mishandles?
/// </summary>
[Fact]
[Trait("Purpose", "Diagnostic")]
public void DumpHallModel_PolyFlagHistogram()
{
var datDir = ConformanceDats.ResolveDatDir();

View file

@ -13,6 +13,7 @@ namespace AcDream.Core.Tests.Conformance;
/// FindCellList result — so the P0→P1 divergence is precisely characterized
/// (real pick-criterion divergence vs a test/sphere artifact).
/// </summary>
[Trait("Purpose", "Diagnostic")]
public class ThresholdDivergenceDiagnosticTests
{
private readonly ITestOutputHelper _out;