test: classify prerequisite lanes and own Avalonia sessions

This commit is contained in:
Erik 2026-08-18 11:30:47 +02:00
parent c1a905004a
commit 3684e7b5e7
113 changed files with 273 additions and 22 deletions

View file

@ -59,6 +59,7 @@ namespace AcDream.Core.Tests.Physics;
/// the flood-sphere list, not a subset or approximation of it.
/// </para>
/// </summary>
[Trait("Lane", "InstalledDat")]
public sealed class Ap157SortingSphereFloodMeasurementTests
{
/// <summary>Arbitrary non-zero landblock id — only its prefix matters for

View file

@ -189,6 +189,7 @@ public sealed class BoxIntersectsCellBspDifferentialTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void InstalledDat_RandomizedBoxSweepOverEnvCellContainmentBsps_HasZeroMismatch()
{
string? datDirectory = ConformanceDats.ResolveDatDir();

View file

@ -38,6 +38,7 @@ namespace AcDream.Core.Tests.Physics;
/// L20104 / L20224 / L20386 (door-exit) + L23035 / L81340 / L87958 (corner press);
/// pivot = player + (0,0,1.5) per RetailChaseCamera.PivotHeight.
/// </summary>
[Trait("Lane", "InstalledDat")]
public class CameraCornerSealReplayTests
{
private readonly ITestOutputHelper _out;

View file

@ -263,6 +263,7 @@ public sealed class CellTransitFindTransitCellsBoxTests
/// for the exact counts from this run.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void InstalledDat_RandomizedPartSweepNearRealPortals_PostFixMembershipIsSubsetOfPreFix()
{
string? datDirectory = ConformanceDats.ResolveDatDir();

View file

@ -28,6 +28,7 @@ namespace AcDream.Core.Tests.Physics;
/// semantics on real Holtburg dat geometry.
/// </para>
/// </summary>
[Trait("Lane", "InstalledDat")]
public class CellTransitTests
{
[Fact]

View file

@ -82,6 +82,7 @@ public class DoorBugTrajectoryReplayTests
/// door's outdoor cell when production's doesn't.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void LiveCompare_DoorOffCenterWalkthrough_Tick13558()
{
var datDir = ResolveDatDir();
@ -117,6 +118,7 @@ public class DoorBugTrajectoryReplayTests
/// registration itself is wrong.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void LiveCompare_DoorBlocksFromOutside_Tick22760()
{
var datDir = ResolveDatDir();
@ -159,6 +161,7 @@ public class DoorBugTrajectoryReplayTests
/// hard-stopped with cn=(0,0,1). Always passes; read the console dump.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void Diagnostic_Tick22760_DumpEngineInternals()
{
var datDir = ResolveDatDir();
@ -211,6 +214,7 @@ public class DoorBugTrajectoryReplayTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void Diagnostic_Tick13558_DumpEngineInternals()
{
var datDir = ResolveDatDir();
@ -272,6 +276,7 @@ public class DoorBugTrajectoryReplayTests
/// portal traversal IS the bug.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void FindTransitCellsSphere_IndoorExitPortal_AddsOutsideForCapturedSpherePos()
{
var datDir = ResolveDatDir();
@ -472,6 +477,7 @@ public class DoorBugTrajectoryReplayTests
/// </para>
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void InsideOut_Tick3254_WithCottageWalls_ShouldBlock()
{
var datDir = ResolveDatDir();
@ -543,6 +549,7 @@ public class DoorBugTrajectoryReplayTests
/// (133.5, 17.10) to end up at X > 133.5 Y > 17.10, bug reproduced.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void CornerSlide_AlcoveEastToCottageNorth_ShouldBlock()
{
var datDir = ResolveDatDir();
@ -770,6 +777,7 @@ public class DoorBugTrajectoryReplayTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void Geometric_DoorSlabAtSphereHeight_OverlapsInZ()
{
var datDir = ResolveDatDir();
@ -821,6 +829,7 @@ public class DoorBugTrajectoryReplayTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void Directional_OutsideIn_SouthApproach_BlocksAtSlabSouthFace()
{
var datDir = ResolveDatDir();
@ -848,6 +857,7 @@ public class DoorBugTrajectoryReplayTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void Directional_InsideOut_NorthApproach_BlocksAtSlabNorthFace()
{
var datDir = ResolveDatDir();

View file

@ -40,6 +40,7 @@ namespace AcDream.Core.Tests.Physics;
/// CI stays green. Local developer machines always have it.
/// </para>
/// </summary>
[Trait("Lane", "InstalledDat")]
public class DoorCollisionApparatusTests
{
private readonly ITestOutputHelper _out;

View file

@ -26,6 +26,7 @@ namespace AcDream.Core.Tests.Physics;
/// keeps CI green. Local developer runs always have it.
/// </para>
/// </summary>
[Trait("Lane", "InstalledDat")]
public class DoorSetupGfxObjInspectionTests
{
private readonly ITestOutputHelper _out;

View file

@ -412,6 +412,7 @@ public sealed class FlatBspQueryDifferentialTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void InstalledDat_LargeRandomizedSweep_HasZeroBitMismatch()
{
string? datDirectory = ConformanceDats.ResolveDatDir();

View file

@ -9,6 +9,7 @@ using Xunit.Abstractions;
namespace AcDream.Core.Tests.Physics;
[Trait("Lane", "InstalledDat")]
public sealed class FlatCollisionInstalledDatTests
{
private readonly ITestOutputHelper _output;

View file

@ -15,6 +15,7 @@ namespace AcDream.Core.Tests.Physics;
/// The packet-driven remote mover must use these values, not a velocity guessed
/// from the interpreted command.
/// </summary>
[Trait("Lane", "InstalledDat")]
public sealed class HumanoidMotionTableRootMotionTests
{
private const uint HumanoidMotionTable = 0x09000001u;

View file

@ -66,6 +66,7 @@ namespace AcDream.Core.Tests.Physics;
/// eye projects into the aperture band at y 9.817) paints the doorway.
/// These tests stay as the characterization pin for the healthy layer.
/// </summary>
[Trait("Lane", "InstalledDat")]
public class Issue108CellarAscentViewerReplayTests
{
private readonly ITestOutputHelper _out;

View file

@ -20,6 +20,7 @@ namespace AcDream.Core.Tests.Physics;
/// (normal ≈ ±X at the portal's local X) — i.e., are portal-sealing polys in
/// our collision set where retail filters them?
/// </summary>
[Trait("Lane", "InstalledDat")]
public class Issue137CorridorSeamInspectionTests
{
private readonly ITestOutputHelper _out;

View file

@ -38,6 +38,7 @@ namespace AcDream.Core.Tests.Physics;
/// running must keep advancing (no absorbing wedge).
/// </para>
/// </summary>
[Trait("Lane", "InstalledDat")]
public class Issue137CorridorSeamReplayTests
{
private readonly ITestOutputHelper _out;

View file

@ -17,6 +17,7 @@ namespace AcDream.Core.Tests.Physics;
/// (a separate shadow-object collision path). Dat-data-dependent; SKIPs cleanly
/// without ACDREAM_DAT_DIR / the real dats.
/// </summary>
[Trait("Lane", "InstalledDat")]
public sealed class Issue147ArwicBuildingsDumpTests
{
private readonly ITestOutputHelper _out;

View file

@ -39,6 +39,7 @@ public class Issue175HubDoorPoseInspectionTests
private const uint HubDoorSetupId = 0x02000C9Du;
[Fact]
[Trait("Lane", "InstalledDat")]
public void HubDoorSetup_PlacementVsMotionPose_DatInspection()
{
var datDir = Env.GetEnvironmentVariable("ACDREAM_DAT_DIR")
@ -161,6 +162,7 @@ public class Issue175HubDoorPoseInspectionTests
/// NonCombat/Ready) and asserts the derivation actually resolves a pose.
/// </summary>
[Fact]
[Trait("Lane", "InstalledDat")]
public void MotionTablePose_DefaultState_ResolvesOnRealTable()
{
var datDir = Env.GetEnvironmentVariable("ACDREAM_DAT_DIR")

View file

@ -24,6 +24,7 @@ namespace AcDream.Core.Tests.Physics;
/// stair pop). This replay measures OUR resolver's flip point across the
/// x=85 seam in a controlled run.
/// </summary>
[Trait("Lane", "InstalledDat")]
public class Issue176177SeamTransitLagTests
{
private const uint SeamCellWest = 0x8A02016Eu; // x 75..85

View file

@ -35,6 +35,7 @@ namespace AcDream.Core.Tests.Physics;
/// 3. the clipped eye is the CONSTANT surface-contact point (pre-fix it
/// tracked the target one step back: eyeBack = s ~0.27).
/// </summary>
[Trait("Lane", "InstalledDat")]
public class Issue180CorridorSweepHysteresisReplayTests
{
private readonly ITestOutputHelper _out;

View file

@ -20,6 +20,7 @@ namespace AcDream.Core.Tests.Physics;
/// bare connector? And does it carry collision geometry (so the camera sweep would
/// hard-stop) or none (so the boom coasts to a degenerate spot)? Skips without the dat.
/// </summary>
[Trait("Lane", "InstalledDat")]
public class Issue186ConnectorCellGeometryInspectionTests
{
private readonly ITestOutputHelper _out;

View file

@ -74,6 +74,7 @@ public class Issue188FadingDoorMotionTableInspectionTests
}
[Fact]
[Trait("Lane", "InstalledDat")]
public void Dump_PedestalWeakSpot_MotionTable_HookContents()
{
var datDir = DatDir();

View file

@ -38,6 +38,7 @@ namespace AcDream.Core.Tests.Physics;
///
/// Dat-data dependent; SKIPs cleanly without ACDREAM_DAT_DIR.
/// </summary>
[Trait("Lane", "InstalledDat")]
public sealed class Issue337NeftetRockGeometryInspectionTests
{
private const uint Landblock = 0x8766_0000u;

View file

@ -40,6 +40,7 @@ namespace AcDream.Core.Tests.Physics;
/// present (CI has no local AC install).
/// </para>
/// </summary>
[Trait("Lane", "InstalledDat")]
public class MotionCommandCatalogDatTests
{
/// <summary>

View file

@ -18,6 +18,7 @@ namespace AcDream.Core.Tests.Physics;
/// when the installed DATs are absent (CI), following the
/// DoorSetupGfxObjInspectionTests pattern.
/// </summary>
[Trait("Lane", "InstalledDat")]
public sealed class RestrictionObjPrevalenceInspectionTests
{
private readonly ITestOutputHelper _output;