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

@ -0,0 +1,26 @@
using MinecraftClient.Pathing.Core;
using Xunit;
using Xunit.Abstractions;
namespace MinecraftClient.Tests.Pathing.Execution;
public sealed class PathingContractBootstrapTests
{
private readonly ITestOutputHelper _output;
public PathingContractBootstrapTests(ITestOutputHelper output) => _output = output;
[Theory]
[InlineData("same-move-ascend-staircase")]
[InlineData("same-move-descend-staircase")]
[InlineData("rejected-3x1-invalid-goal")]
public void PrintShortRouteContractFragments(string scenarioId)
{
PathingExecutionScenario scenario = PathingExecutionScenarioCatalog.Get(scenarioId);
PathResult planResult = PathingScenarioRunner.PlanOnly(scenario);
_output.WriteLine(PathingContractBootstrapWriter.WritePlannerFragment(scenarioId, planResult));
if (planResult.Status == PathStatus.Success)
_output.WriteLine(PathingContractBootstrapWriter.WriteTimingFragment(scenarioId, PathingScenarioRunner.RunAccepted(scenario)));
}
}