mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
test: complete sidewall fixture matrix
This commit is contained in:
parent
056d7afef1
commit
43db3950e3
2 changed files with 113 additions and 8 deletions
|
|
@ -13,26 +13,40 @@ public static class SidewallParkourScenarioBuilder
|
|||
|
||||
public static IEnumerable<object[]> AcceptedCases()
|
||||
{
|
||||
yield return ["sidewall-flat-gap2-wo0", 2, 0, 0];
|
||||
yield return ["sidewall-flat-gap3-wo1", 3, 0, 1];
|
||||
yield return ["sidewall-ascend-gap2-dy+1-wo0", 2, 1, 0];
|
||||
yield return ["sidewall-ascend-gap3-dy+1-wo0", 3, 1, 0];
|
||||
yield return ["sidewall-ascend-gap3-dy+1-wo1", 3, 1, 1];
|
||||
yield return ["sidewall-descend-gap2-dy-1-wo0", 2, -1, 0];
|
||||
yield return ["sidewall-descend-gap3-dy-1-wo1", 3, -1, 1];
|
||||
yield return ["sidewall-descend-gap2-dy-2-wo0", 2, -2, 0];
|
||||
yield return ["sidewall-descend-gap3-dy-2-wo0", 3, -2, 0];
|
||||
yield return ["sidewall-descend-gap4-dy-2-wo0", 4, -2, 0];
|
||||
yield return ["sidewall-descend-gap5-dy-2-wo0", 5, -2, 0];
|
||||
yield return ["sidewall-descend-gap3-dy-2-wo1", 3, -2, 1];
|
||||
yield return ["sidewall-descend-gap4-dy-2-wo1", 4, -2, 1];
|
||||
yield return ["sidewall-descend-gap5-dy-2-wo1", 5, -2, 1];
|
||||
yield return ["sidewall-descend-gap2-dy-1-wo0", 2, -1, 0];
|
||||
yield return ["sidewall-descend-gap3-dy-1-wo0", 3, -1, 0];
|
||||
yield return ["sidewall-descend-gap4-dy-1-wo0", 4, -1, 0];
|
||||
yield return ["sidewall-descend-gap5-dy-1-wo0", 5, -1, 0];
|
||||
yield return ["sidewall-descend-gap3-dy-1-wo1", 3, -1, 1];
|
||||
yield return ["sidewall-descend-gap4-dy-1-wo1", 4, -1, 1];
|
||||
yield return ["sidewall-descend-gap5-dy-1-wo1", 5, -1, 1];
|
||||
yield return ["sidewall-flat-gap2-wo0", 2, 0, 0];
|
||||
yield return ["sidewall-flat-gap3-wo0", 3, 0, 0];
|
||||
yield return ["sidewall-flat-gap4-wo0", 4, 0, 0];
|
||||
yield return ["sidewall-flat-gap3-wo1", 3, 0, 1];
|
||||
yield return ["sidewall-flat-gap4-wo1", 4, 0, 1];
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> RejectedCases()
|
||||
{
|
||||
yield return ["sidewall-flat-gap5-wo0", 5, 0, 0];
|
||||
yield return ["sidewall-flat-gap5-wo1", 5, 0, 1];
|
||||
yield return ["sidewall-ascend-gap4-dy+1-wo0", 4, 1, 0];
|
||||
yield return ["sidewall-ascend-gap4-dy+1-wo1", 4, 1, 1];
|
||||
yield return ["sidewall-descend-gap6-dy-1-wo0", 6, -1, 0];
|
||||
yield return ["sidewall-descend-gap6-dy-1-wo1", 6, -1, 1];
|
||||
yield return ["sidewall-descend-gap6-dy-2-wo0", 6, -2, 0];
|
||||
yield return ["sidewall-descend-gap6-dy-2-wo1", 6, -2, 1];
|
||||
yield return ["sidewall-descend-gap6-dy-1-wo0", 6, -1, 0];
|
||||
yield return ["sidewall-descend-gap6-dy-1-wo1", 6, -1, 1];
|
||||
yield return ["sidewall-flat-gap5-wo0", 5, 0, 0];
|
||||
yield return ["sidewall-flat-gap5-wo1", 5, 0, 1];
|
||||
}
|
||||
|
||||
internal static PathingExecutionScenario Create(string scenarioId, int gap, int deltaY, int wallOffset, int maxExecutionTicks = 700)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,62 @@ namespace MinecraftClient.Tests.Pathing.Execution;
|
|||
|
||||
public sealed class SidewallParkourScenarioBuilderTests
|
||||
{
|
||||
[Fact]
|
||||
public void AcceptedCases_MatchLiveSidewallMatrix()
|
||||
{
|
||||
string[] caseIds = SidewallParkourScenarioBuilder.AcceptedCases()
|
||||
.Select(static c => Assert.IsType<string>(c[0]))
|
||||
.ToArray();
|
||||
|
||||
Assert.Equal(
|
||||
[
|
||||
"sidewall-ascend-gap2-dy+1-wo0",
|
||||
"sidewall-ascend-gap3-dy+1-wo0",
|
||||
"sidewall-ascend-gap3-dy+1-wo1",
|
||||
"sidewall-descend-gap2-dy-2-wo0",
|
||||
"sidewall-descend-gap3-dy-2-wo0",
|
||||
"sidewall-descend-gap4-dy-2-wo0",
|
||||
"sidewall-descend-gap5-dy-2-wo0",
|
||||
"sidewall-descend-gap3-dy-2-wo1",
|
||||
"sidewall-descend-gap4-dy-2-wo1",
|
||||
"sidewall-descend-gap5-dy-2-wo1",
|
||||
"sidewall-descend-gap2-dy-1-wo0",
|
||||
"sidewall-descend-gap3-dy-1-wo0",
|
||||
"sidewall-descend-gap4-dy-1-wo0",
|
||||
"sidewall-descend-gap5-dy-1-wo0",
|
||||
"sidewall-descend-gap3-dy-1-wo1",
|
||||
"sidewall-descend-gap4-dy-1-wo1",
|
||||
"sidewall-descend-gap5-dy-1-wo1",
|
||||
"sidewall-flat-gap2-wo0",
|
||||
"sidewall-flat-gap3-wo0",
|
||||
"sidewall-flat-gap4-wo0",
|
||||
"sidewall-flat-gap3-wo1",
|
||||
"sidewall-flat-gap4-wo1",
|
||||
],
|
||||
caseIds);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RejectedCases_MatchLiveSidewallMatrix()
|
||||
{
|
||||
string[] caseIds = SidewallParkourScenarioBuilder.RejectedCases()
|
||||
.Select(static c => Assert.IsType<string>(c[0]))
|
||||
.ToArray();
|
||||
|
||||
Assert.Equal(
|
||||
[
|
||||
"sidewall-ascend-gap4-dy+1-wo0",
|
||||
"sidewall-ascend-gap4-dy+1-wo1",
|
||||
"sidewall-descend-gap6-dy-2-wo0",
|
||||
"sidewall-descend-gap6-dy-2-wo1",
|
||||
"sidewall-descend-gap6-dy-1-wo0",
|
||||
"sidewall-descend-gap6-dy-1-wo1",
|
||||
"sidewall-flat-gap5-wo0",
|
||||
"sidewall-flat-gap5-wo1",
|
||||
],
|
||||
caseIds);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildWorld_FlatGap2Wo0_MatchesLiveRouteGeometry()
|
||||
{
|
||||
|
|
@ -16,6 +72,9 @@ public sealed class SidewallParkourScenarioBuilderTests
|
|||
Assert.Equal(Material.Stone, world.GetBlock(new Location(99, 78, 100)).Type);
|
||||
Assert.Equal(Material.Stone, world.GetBlock(new Location(99, 79, 102)).Type);
|
||||
Assert.Equal(Material.Air, world.GetBlock(new Location(100, 79, 101)).Type);
|
||||
Assert.Equal(Material.Stone, world.GetBlock(new Location(98, 78, 102)).Type);
|
||||
Assert.Equal(Material.Stone, world.GetBlock(new Location(97, 79, 106)).Type);
|
||||
Assert.Equal(Material.Air, world.GetBlock(new Location(98, 79, 103)).Type);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -44,4 +103,36 @@ public sealed class SidewallParkourScenarioBuilderTests
|
|||
Assert.Equal(106, scenario.Goal.Z);
|
||||
Assert.Equal(0f, scenario.StartYaw);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_AscendGap3Wo1_ComputesGoalForLaterRaisedEndpoint()
|
||||
{
|
||||
PathingExecutionScenario scenario = SidewallParkourScenarioBuilder.Create(
|
||||
"sidewall-ascend-gap3-dy+1-wo1",
|
||||
gap: 3,
|
||||
deltaY: 1,
|
||||
wallOffset: 1);
|
||||
|
||||
Assert.Equal(new Location(100.5, 80, 100.5), scenario.Start);
|
||||
Assert.Equal(97, scenario.Goal.X);
|
||||
Assert.Equal(83, scenario.Goal.Y);
|
||||
Assert.Equal(109, scenario.Goal.Z);
|
||||
Assert.Equal(0f, scenario.StartYaw);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Create_DescendGap5Wo1_ComputesGoalForLowerEndpoint()
|
||||
{
|
||||
PathingExecutionScenario scenario = SidewallParkourScenarioBuilder.Create(
|
||||
"sidewall-descend-gap5-dy-2-wo1",
|
||||
gap: 5,
|
||||
deltaY: -2,
|
||||
wallOffset: 1);
|
||||
|
||||
Assert.Equal(new Location(100.5, 80, 100.5), scenario.Start);
|
||||
Assert.Equal(97, scenario.Goal.X);
|
||||
Assert.Equal(74, scenario.Goal.Y);
|
||||
Assert.Equal(115, scenario.Goal.Z);
|
||||
Assert.Equal(0f, scenario.StartYaw);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue