test: separate diagnostic apparatus from release gates
This commit is contained in:
parent
8f490240d4
commit
c1a905004a
33 changed files with 527 additions and 24 deletions
|
|
@ -541,6 +541,7 @@ public class CornerFloodReplayTests
|
|||
/// <summary>Scratch: the homogeneous reciprocal primitive in isolation, on the
|
||||
/// synthetic fixture geometry that Build_AppliesReciprocalOtherPortalClip uses.</summary>
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Scratch_ReciprocalPrimitive_SyntheticPair()
|
||||
{
|
||||
var view = Matrix4x4.CreateLookAt(Vector3.Zero, new Vector3(0, 0, -1), Vector3.UnitY);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ namespace AcDream.App.Tests.Rendering;
|
|||
/// candidate setup's parts + bounds from the dat. The portal's setup is the
|
||||
/// translucent swirl; lamp posts / creatures / signs identify by part shape.
|
||||
/// </summary>
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public class Issue131SetupProbeTests
|
||||
{
|
||||
private readonly ITestOutputHelper _out;
|
||||
|
|
|
|||
|
|
@ -98,7 +98,8 @@ public class Issue176177FacilityHubFloodReplayTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void ScenarioB_StairDescent_RampCellRetention()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_ScenarioB_StairDescent_RampCellRetention()
|
||||
{
|
||||
var datDir = CornerFloodReplayTests.ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -140,7 +141,8 @@ public class Issue176177FacilityHubFloodReplayTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void ScenarioC_CorridorSeamGazeSweep_Bistability()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_ScenarioC_CorridorSeamGazeSweep_Bistability()
|
||||
{
|
||||
var datDir = CornerFloodReplayTests.ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -212,9 +214,10 @@ public class Issue176177FacilityHubFloodReplayTests
|
|||
/// #177(a)/(c) at the stair transit.
|
||||
/// </summary>
|
||||
[Theory]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
[InlineData(0x016Eu, 0x017Au, 85.00f, -4.3f)] // corridor seam, plane x=85
|
||||
[InlineData(0x0182u, 0x0183u, 98.333f, -7.3f)] // stair-bottom transit, plane x=98.33
|
||||
public void ScenarioE_RootLagWindow_ForwardChainRetention(
|
||||
public void Diagnostic_ScenarioE_RootLagWindow_ForwardChainRetention(
|
||||
uint rootLow, uint forwardLow, float planeX, float eyeZ)
|
||||
{
|
||||
var datDir = CornerFloodReplayTests.ResolveDatDir();
|
||||
|
|
@ -239,7 +242,8 @@ public class Issue176177FacilityHubFloodReplayTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void ScenarioD_CorridorWalk_PerStepChurn()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_ScenarioD_CorridorWalk_PerStepChurn()
|
||||
{
|
||||
var datDir = CornerFloodReplayTests.ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
|
|||
|
|
@ -105,7 +105,8 @@ public class Issue177StairDescentCameraFloodTests
|
|||
=> string.Join(" ", ids.Select(id => $"{id & 0xFFFFu:X4}"));
|
||||
|
||||
[Fact]
|
||||
public void StairCellComposition_ShellVsStatics()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_StairCellComposition_ShellVsStatics()
|
||||
{
|
||||
var datDir = ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -166,7 +167,8 @@ public class Issue177StairDescentCameraFloodTests
|
|||
/// locate the knife-edge and which cell flips.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void RealStaircase_FineYawZoomSweep_FindKnifeEdge()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_RealStaircase_FineYawZoomSweep_FindKnifeEdge()
|
||||
{
|
||||
var datDir = ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -228,7 +230,8 @@ public class Issue177StairDescentCameraFloodTests
|
|||
/// caps well below retail's 26, our flood truncates the spiral (the vanish).
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void FloodDepthFrom015E_VsRetail26()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_FloodDepthFrom015E_VsRetail26()
|
||||
{
|
||||
var datDir = ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -349,7 +352,8 @@ public class Issue177StairDescentCameraFloodTests
|
|||
/// contact leaving the eye on the surface vs free-space boom geometry.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void StaircaseSweep_EyeClearanceFromCeilingPortal()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_StaircaseSweep_EyeClearanceFromCeilingPortal()
|
||||
{
|
||||
var datDir = ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -392,10 +396,11 @@ public class Issue177StairDescentCameraFloodTests
|
|||
}
|
||||
|
||||
[Theory]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
// spot label, player x, player cell, description
|
||||
[InlineData(90.0f, 0x0178u, "TOP corridor 0178 (approach view)")]
|
||||
[InlineData(100.0f, 0x0183u, "BOTTOM room 0183 (look-back view)")]
|
||||
public void ParkedYawZoomSweep_StairAdmission(float px, uint pcell, string label)
|
||||
public void Diagnostic_ParkedYawZoomSweep_StairAdmission(float px, uint pcell, string label)
|
||||
{
|
||||
var datDir = ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
@ -451,7 +456,8 @@ public class Issue177StairDescentCameraFloodTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void Descent_RealCameraSweep_StairCellRetention()
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_Descent_RealCameraSweep_StairCellRetention()
|
||||
{
|
||||
var datDir = ResolveDatDir();
|
||||
if (datDir is null) { _out.WriteLine("SKIP: no dat dir"); return; }
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ public class Issue181VisFlapReplayTests
|
|||
=> string.Join(" ", ids.Select(id => $"{id & 0xFFFFu:X4}"));
|
||||
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void Diagnostic_FlappingCellViewRegion_SliverOrLarge()
|
||||
{
|
||||
var datDir = CornerFloodReplayTests.ResolveDatDir();
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ namespace AcDream.App.Tests.Rendering;
|
|||
/// numbers into hard pins.
|
||||
/// </summary>
|
||||
[Collection(CameraDiagnosticsCollection.Name)]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public class Issue181WallPressEquilibriumTests
|
||||
{
|
||||
private const uint FacilityHubLandblock = 0x8A020000u;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ namespace AcDream.App.Tests.UI.Layout;
|
|||
/// identify the two FA slots definitively: 0x1000026F (fellowship name field)
|
||||
/// and 0x10000263 (swear-allegiance button). Env-gated like the other probes.
|
||||
/// </summary>
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public sealed class FaPanelSlotProbeTests
|
||||
{
|
||||
[Fact]
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ namespace AcDream.App.Tests.UI.Layout;
|
|||
/// throwaway.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public sealed class MapHousePanelSlotProbeTests
|
||||
{
|
||||
private const uint HostLayoutId = 0x2100006Eu;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ namespace AcDream.App.Tests.UI.Layout;
|
|||
public sealed class OptionsPanelLiveMountProbeTests
|
||||
{
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void ProbeLiveMountShapes()
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ACDREAM_PROBE_LIVE_MOUNT") != "1")
|
||||
|
|
@ -314,6 +315,7 @@ public sealed class OptionsPanelLiveMountProbeTests
|
|||
/// FIXED 6-row + scrollbar popup in retail, user-gated during the vendor
|
||||
/// campaign) as the contrast control.</summary>
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void ProbeMenuPopupSizingAndTextStyle()
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ACDREAM_PROBE_LIVE_MOUNT") != "1")
|
||||
|
|
@ -479,6 +481,7 @@ public sealed class OptionsPanelLiveMountProbeTests
|
|||
/// to resolve in table 0x23000003 — sweep the plausible tables and key
|
||||
/// spellings against the live DAT to find their real home.</summary>
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void ProbeFilterLabelHome()
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ACDREAM_PROBE_LIVE_MOUNT") != "1")
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ namespace AcDream.App.Tests.UI.Layout;
|
|||
public sealed class PowerbarLayoutProbeTests
|
||||
{
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void ProbePowerbarAuthoredStrings()
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ACDREAM_PROBE_POWERBAR") != "1")
|
||||
|
|
@ -75,6 +76,7 @@ public sealed class PowerbarLayoutProbeTests
|
|||
/// gmSecureTradeUI's element tree (lane A gave element ids 0x10000085-8B
|
||||
/// but not the layout id) and dump it.</summary>
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void ProbeSecureTradeLayout()
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ACDREAM_PROBE_POWERBAR") != "1")
|
||||
|
|
@ -107,6 +109,7 @@ public sealed class PowerbarLayoutProbeTests
|
|||
/// ID_SecureTrade_TotalItemsLabel's fragments + variable hashes so the
|
||||
/// count text can use ResolveTemplate if token-free (AD-95).</summary>
|
||||
[Fact]
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public void ProbeTotalItemsTemplate()
|
||||
{
|
||||
if (Environment.GetEnvironmentVariable("ACDREAM_PROBE_POWERBAR") != "1")
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ namespace AcDream.App.Tests.UI;
|
|||
/// <c>States</c> dictionary was not walked) remain open.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
[Trait("Purpose", "Diagnostic")]
|
||||
public sealed class SpewBoxLayoutDumpDiagnostic
|
||||
{
|
||||
private readonly ITestOutputHelper _out;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue