test: lock short route planner and timing contracts

This commit is contained in:
BruceChen 2026-04-13 16:52:34 +00:00
parent b9bff02107
commit ba1dc32ccb
9 changed files with 339 additions and 4 deletions

View file

@ -1,4 +1,5 @@
using MinecraftClient.Pathing.Core;
using MinecraftClient.Pathing.Execution;
using MinecraftClient.Tests.Pathing.Execution.Contracts;
using Xunit;
@ -211,4 +212,17 @@ public sealed class PathPlanningContractTests
Assert.Contains("sequence-mismatch", error.Message);
Assert.Contains("segment 1", error.Message);
}
[Theory]
[InlineData("same-move-ascend-staircase")]
[InlineData("same-move-descend-staircase")]
[InlineData("rejected-3x1-invalid-goal")]
public void Scenario_PlannerMatchesContract(string scenarioId)
{
PathingExecutionScenario scenario = PathingExecutionScenarioCatalog.Get(scenarioId);
PathResult planResult = PathingScenarioRunner.PlanOnly(scenario);
PathingPlannerContract contract = PathingContractStore.LoadFromRepositoryRoot().GetPlanner(scenarioId);
PathingContractAssert.PlannerMatches(contract, PathSegmentBuilder.FromPath(planResult.Path), planResult);
}
}