mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
test: add long route timing contracts
This commit is contained in:
parent
eb9d6ce356
commit
b42a24e77a
5 changed files with 2083 additions and 93 deletions
|
|
@ -44,4 +44,26 @@ public sealed class PathTimingContractTests
|
|||
|
||||
PathingContractAssert.TimingMatches(budget, result);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("same-move-straight-traverse-chain")]
|
||||
[InlineData("same-move-diagonal-chain")]
|
||||
[InlineData("same-move-ascend-staircase")]
|
||||
[InlineData("same-move-descend-staircase")]
|
||||
[InlineData("same-move-aligned-parkour-chain")]
|
||||
[InlineData("mixed-traverse-turn-parkour-turn-traverse")]
|
||||
[InlineData("mixed-diagonal-ascend-traverse-descend")]
|
||||
[InlineData("mixed-traverse-ascend-parkour-descend")]
|
||||
[InlineData("turn-density-alternating-traverse-diagonal-chain")]
|
||||
[InlineData("speed-carry-repeated-traverse-ascend")]
|
||||
[InlineData("speed-carry-repeated-traverse-descend")]
|
||||
[InlineData("speed-carry-repeated-traverse-parkour")]
|
||||
public void LongRoute_ExecutionStaysWithinBudget(string scenarioId)
|
||||
{
|
||||
PathingExecutionScenario scenario = PathingExecutionScenarioCatalog.Get(scenarioId);
|
||||
PathingTimingBudget budget = PathingContractStore.LoadFromRepositoryRoot().GetTiming(scenarioId);
|
||||
PathingScenarioResult result = PathingScenarioRunner.RunAccepted(scenario);
|
||||
|
||||
PathingContractAssert.TimingMatches(budget, result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,27 @@ public sealed class PathingContractBootstrapTests
|
|||
if (planResult.Status == PathStatus.Success)
|
||||
_output.WriteLine(PathingContractBootstrapWriter.WriteTimingFragment(scenarioId, PathingScenarioRunner.RunAccepted(scenario)));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("same-move-straight-traverse-chain")]
|
||||
[InlineData("same-move-diagonal-chain")]
|
||||
[InlineData("same-move-ascend-staircase")]
|
||||
[InlineData("same-move-descend-staircase")]
|
||||
[InlineData("same-move-aligned-parkour-chain")]
|
||||
[InlineData("mixed-traverse-turn-parkour-turn-traverse")]
|
||||
[InlineData("mixed-diagonal-ascend-traverse-descend")]
|
||||
[InlineData("mixed-traverse-ascend-parkour-descend")]
|
||||
[InlineData("turn-density-alternating-traverse-diagonal-chain")]
|
||||
[InlineData("speed-carry-repeated-traverse-ascend")]
|
||||
[InlineData("speed-carry-repeated-traverse-descend")]
|
||||
[InlineData("speed-carry-repeated-traverse-parkour")]
|
||||
public void PrintLongRouteContractFragments(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)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,6 +88,96 @@ internal static class PathingExecutionScenarioCatalog
|
|||
StartYaw = 315f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"same-move-straight-traverse-chain" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildSameMoveStraightTraverseChain,
|
||||
Start = new Location(300.5, 80, 300.5),
|
||||
Goal = new GoalBlock(312, 80, 300),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"same-move-diagonal-chain" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildSameMoveDiagonalChain,
|
||||
Start = new Location(320.5, 80, 320.5),
|
||||
Goal = new GoalBlock(327, 80, 327),
|
||||
StartYaw = 315f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"same-move-aligned-parkour-chain" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildSameMoveAlignedParkourChain,
|
||||
Start = new Location(380.5, 80, 380.5),
|
||||
Goal = new GoalBlock(388, 80, 380),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"mixed-traverse-turn-parkour-turn-traverse" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildMixedTraverseTurnParkourTurnTraverse,
|
||||
Start = new Location(400.5, 80, 400.5),
|
||||
Goal = new GoalBlock(408, 80, 404),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"mixed-diagonal-ascend-traverse-descend" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildMixedDiagonalAscendTraverseDescend,
|
||||
Start = new Location(420.5, 80, 420.5),
|
||||
Goal = new GoalBlock(428, 80, 422),
|
||||
StartYaw = 315f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"mixed-traverse-ascend-parkour-descend" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildMixedTraverseAscendParkourDescend,
|
||||
Start = new Location(440.5, 80, 440.5),
|
||||
Goal = new GoalBlock(448, 80, 440),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"turn-density-alternating-traverse-diagonal-chain" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildTurnDensityAlternatingTraverseDiagonalChain,
|
||||
Start = new Location(460.5, 80, 460.5),
|
||||
Goal = new GoalBlock(466, 80, 466),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"speed-carry-repeated-traverse-ascend" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildSpeedCarryRepeatedTraverseAscend,
|
||||
Start = new Location(480.5, 80, 480.5),
|
||||
Goal = new GoalBlock(488, 84, 480),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"speed-carry-repeated-traverse-descend" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildSpeedCarryRepeatedTraverseDescend,
|
||||
Start = new Location(500.5, 83, 500.5),
|
||||
Goal = new GoalBlock(507, 80, 500),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
"speed-carry-repeated-traverse-parkour" => new PathingExecutionScenario
|
||||
{
|
||||
Id = scenarioId,
|
||||
BuildWorld = BuildSpeedCarryRepeatedTraverseParkour,
|
||||
Start = new Location(520.5, 80, 520.5),
|
||||
Goal = new GoalBlock(529, 80, 520),
|
||||
StartYaw = 270f,
|
||||
MaxExecutionTicks = 420
|
||||
},
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(scenarioId), scenarioId, null)
|
||||
};
|
||||
|
||||
|
|
@ -199,4 +289,151 @@ internal static class PathingExecutionScenarioCatalog
|
|||
FlatWorldTestBuilder.SetSolid(world, 684, 79, 624);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildSameMoveStraightTraverseChain()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 298, max: 314);
|
||||
FlatWorldTestBuilder.ClearBox(world, 298, 79, 298, 314, 90, 302);
|
||||
FlatWorldTestBuilder.FillSolid(world, 300, 79, 300, 312, 79, 300);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildSameMoveDiagonalChain()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 318, max: 330);
|
||||
FlatWorldTestBuilder.ClearBox(world, 318, 79, 318, 330, 90, 330);
|
||||
FlatWorldTestBuilder.SetSolid(world, 320, 79, 320);
|
||||
FlatWorldTestBuilder.SetSolid(world, 321, 79, 321);
|
||||
FlatWorldTestBuilder.SetSolid(world, 322, 79, 322);
|
||||
FlatWorldTestBuilder.SetSolid(world, 323, 79, 323);
|
||||
FlatWorldTestBuilder.SetSolid(world, 324, 79, 324);
|
||||
FlatWorldTestBuilder.SetSolid(world, 325, 79, 325);
|
||||
FlatWorldTestBuilder.SetSolid(world, 326, 79, 326);
|
||||
FlatWorldTestBuilder.SetSolid(world, 327, 79, 327);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildSameMoveAlignedParkourChain()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 378, max: 390);
|
||||
FlatWorldTestBuilder.ClearBox(world, 378, 79, 378, 390, 90, 382);
|
||||
FlatWorldTestBuilder.SetSolid(world, 380, 79, 380);
|
||||
FlatWorldTestBuilder.SetSolid(world, 382, 79, 380);
|
||||
FlatWorldTestBuilder.SetSolid(world, 384, 79, 380);
|
||||
FlatWorldTestBuilder.SetSolid(world, 386, 79, 380);
|
||||
FlatWorldTestBuilder.SetSolid(world, 388, 79, 380);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildMixedTraverseTurnParkourTurnTraverse()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 398, max: 410);
|
||||
FlatWorldTestBuilder.ClearBox(world, 398, 79, 398, 410, 90, 406);
|
||||
FlatWorldTestBuilder.SetSolid(world, 400, 79, 400);
|
||||
FlatWorldTestBuilder.SetSolid(world, 401, 79, 400);
|
||||
FlatWorldTestBuilder.SetSolid(world, 402, 79, 400);
|
||||
FlatWorldTestBuilder.SetSolid(world, 402, 79, 401);
|
||||
FlatWorldTestBuilder.SetSolid(world, 402, 79, 402);
|
||||
FlatWorldTestBuilder.SetSolid(world, 404, 79, 402);
|
||||
FlatWorldTestBuilder.SetSolid(world, 405, 79, 402);
|
||||
FlatWorldTestBuilder.SetSolid(world, 406, 79, 402);
|
||||
FlatWorldTestBuilder.SetSolid(world, 406, 79, 403);
|
||||
FlatWorldTestBuilder.SetSolid(world, 406, 79, 404);
|
||||
FlatWorldTestBuilder.SetSolid(world, 407, 79, 404);
|
||||
FlatWorldTestBuilder.SetSolid(world, 408, 79, 404);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildMixedDiagonalAscendTraverseDescend()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 418, max: 430);
|
||||
FlatWorldTestBuilder.ClearBox(world, 418, 79, 418, 430, 92, 424);
|
||||
FlatWorldTestBuilder.SetSolid(world, 420, 79, 420);
|
||||
FlatWorldTestBuilder.SetSolid(world, 421, 79, 421);
|
||||
FlatWorldTestBuilder.SetSolid(world, 422, 79, 422);
|
||||
FlatWorldTestBuilder.SetSolid(world, 423, 80, 422);
|
||||
FlatWorldTestBuilder.SetSolid(world, 424, 81, 422);
|
||||
FlatWorldTestBuilder.SetSolid(world, 425, 81, 422);
|
||||
FlatWorldTestBuilder.SetSolid(world, 426, 81, 422);
|
||||
FlatWorldTestBuilder.SetSolid(world, 427, 80, 422);
|
||||
FlatWorldTestBuilder.SetSolid(world, 428, 79, 422);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildMixedTraverseAscendParkourDescend()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 438, max: 450);
|
||||
FlatWorldTestBuilder.ClearBox(world, 438, 79, 438, 450, 92, 442);
|
||||
FlatWorldTestBuilder.SetSolid(world, 440, 79, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 441, 79, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 442, 80, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 443, 81, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 444, 81, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 446, 81, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 447, 80, 440);
|
||||
FlatWorldTestBuilder.SetSolid(world, 448, 79, 440);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildTurnDensityAlternatingTraverseDiagonalChain()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 458, max: 468);
|
||||
FlatWorldTestBuilder.ClearBox(world, 458, 79, 458, 468, 90, 468);
|
||||
FlatWorldTestBuilder.SetSolid(world, 460, 79, 460);
|
||||
FlatWorldTestBuilder.SetSolid(world, 461, 79, 460);
|
||||
FlatWorldTestBuilder.SetSolid(world, 461, 79, 461);
|
||||
FlatWorldTestBuilder.SetSolid(world, 462, 79, 462);
|
||||
FlatWorldTestBuilder.SetSolid(world, 463, 79, 462);
|
||||
FlatWorldTestBuilder.SetSolid(world, 463, 79, 463);
|
||||
FlatWorldTestBuilder.SetSolid(world, 464, 79, 464);
|
||||
FlatWorldTestBuilder.SetSolid(world, 465, 79, 464);
|
||||
FlatWorldTestBuilder.SetSolid(world, 465, 79, 465);
|
||||
FlatWorldTestBuilder.SetSolid(world, 466, 79, 466);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildSpeedCarryRepeatedTraverseAscend()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 478, max: 490);
|
||||
FlatWorldTestBuilder.ClearBox(world, 478, 79, 478, 490, 94, 482);
|
||||
FlatWorldTestBuilder.SetSolid(world, 480, 79, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 481, 79, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 482, 80, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 483, 80, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 484, 81, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 485, 81, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 486, 82, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 487, 82, 480);
|
||||
FlatWorldTestBuilder.SetSolid(world, 488, 83, 480);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildSpeedCarryRepeatedTraverseDescend()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 498, max: 510);
|
||||
FlatWorldTestBuilder.ClearBox(world, 498, 79, 498, 510, 94, 502);
|
||||
FlatWorldTestBuilder.SetSolid(world, 500, 82, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 501, 82, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 502, 81, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 503, 81, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 504, 80, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 505, 80, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 506, 79, 500);
|
||||
FlatWorldTestBuilder.SetSolid(world, 507, 79, 500);
|
||||
return world;
|
||||
}
|
||||
|
||||
private static World BuildSpeedCarryRepeatedTraverseParkour()
|
||||
{
|
||||
World world = FlatWorldTestBuilder.CreateStoneFloor(min: 518, max: 532);
|
||||
FlatWorldTestBuilder.ClearBox(world, 518, 79, 518, 532, 90, 522);
|
||||
FlatWorldTestBuilder.SetSolid(world, 520, 79, 520);
|
||||
FlatWorldTestBuilder.SetSolid(world, 521, 79, 520);
|
||||
FlatWorldTestBuilder.SetSolid(world, 523, 79, 520);
|
||||
FlatWorldTestBuilder.SetSolid(world, 524, 79, 520);
|
||||
FlatWorldTestBuilder.SetSolid(world, 526, 79, 520);
|
||||
FlatWorldTestBuilder.SetSolid(world, 527, 79, 520);
|
||||
FlatWorldTestBuilder.SetSolid(world, 529, 79, 520);
|
||||
return world;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -4,12 +4,36 @@
|
|||
"expectedTotalTicks": 0,
|
||||
"maxTotalTicks": 0,
|
||||
"segments": [
|
||||
{ "moveType": "Diagonal", "expectedTicks": 0, "maxTicks": 0 },
|
||||
{ "moveType": "Diagonal", "expectedTicks": 0, "maxTicks": 0 },
|
||||
{ "moveType": "Traverse", "expectedTicks": 0, "maxTicks": 0 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 0, "maxTicks": 0 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 0, "maxTicks": 0 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 0, "maxTicks": 0 }
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 0,
|
||||
"maxTicks": 0
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 0,
|
||||
"maxTicks": 0
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 0,
|
||||
"maxTicks": 0
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 0,
|
||||
"maxTicks": 0
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 0,
|
||||
"maxTicks": 0
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 0,
|
||||
"maxTicks": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -17,11 +41,31 @@
|
|||
"expectedTotalTicks": 56,
|
||||
"maxTotalTicks": 68,
|
||||
"segments": [
|
||||
{ "moveType": "Ascend", "expectedTicks": 11, "maxTicks": 14 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 11, "maxTicks": 14 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 11, "maxTicks": 14 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 11, "maxTicks": 14 },
|
||||
{ "moveType": "Ascend", "expectedTicks": 12, "maxTicks": 15 }
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 12,
|
||||
"maxTicks": 15
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -29,9 +73,21 @@
|
|||
"expectedTotalTicks": 61,
|
||||
"maxTotalTicks": 74,
|
||||
"segments": [
|
||||
{ "moveType": "Descend", "expectedTicks": 24, "maxTicks": 29 },
|
||||
{ "moveType": "Descend", "expectedTicks": 25, "maxTicks": 30 },
|
||||
{ "moveType": "Descend", "expectedTicks": 12, "maxTicks": 15 }
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 24,
|
||||
"maxTicks": 29
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 25,
|
||||
"maxTicks": 30
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 12,
|
||||
"maxTicks": 15
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -45,10 +101,26 @@
|
|||
"expectedTotalTicks": 0,
|
||||
"maxTotalTicks": 2,
|
||||
"segments": [
|
||||
{ "moveType": "Parkour", "expectedTicks": 61, "maxTicks": 74 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 61, "maxTicks": 74 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 61, "maxTicks": 74 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 27, "maxTicks": 33 }
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 27,
|
||||
"maxTicks": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -56,9 +128,21 @@
|
|||
"expectedTotalTicks": 20,
|
||||
"maxTotalTicks": 24,
|
||||
"segments": [
|
||||
{ "moveType": "Parkour", "expectedTicks": 61, "maxTicks": 74 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 61, "maxTicks": 74 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 20, "maxTicks": 24 }
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 20,
|
||||
"maxTicks": 24
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -66,9 +150,21 @@
|
|||
"expectedTotalTicks": 0,
|
||||
"maxTotalTicks": 2,
|
||||
"segments": [
|
||||
{ "moveType": "Parkour", "expectedTicks": 27, "maxTicks": 33 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 27, "maxTicks": 33 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 27, "maxTicks": 33 }
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 27,
|
||||
"maxTicks": 33
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 27,
|
||||
"maxTicks": 33
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 27,
|
||||
"maxTicks": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -76,10 +172,26 @@
|
|||
"expectedTotalTicks": 33,
|
||||
"maxTotalTicks": 40,
|
||||
"segments": [
|
||||
{ "moveType": "Parkour", "expectedTicks": 13, "maxTicks": 16 },
|
||||
{ "moveType": "Descend", "expectedTicks": 201, "maxTicks": 242 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 19, "maxTicks": 23 },
|
||||
{ "moveType": "Descend", "expectedTicks": 14, "maxTicks": 17 }
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 13,
|
||||
"maxTicks": 16
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 201,
|
||||
"maxTicks": 242
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 19,
|
||||
"maxTicks": 23
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 14,
|
||||
"maxTicks": 17
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -87,9 +199,426 @@
|
|||
"expectedTotalTicks": 31,
|
||||
"maxTotalTicks": 38,
|
||||
"segments": [
|
||||
{ "moveType": "Ascend", "expectedTicks": 81, "maxTicks": 98 },
|
||||
{ "moveType": "Parkour", "expectedTicks": 16, "maxTicks": 20 },
|
||||
{ "moveType": "Descend", "expectedTicks": 15, "maxTicks": 18 }
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 16,
|
||||
"maxTicks": 20
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 15,
|
||||
"maxTicks": 18
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "turn-density-alternating-traverse-diagonal-chain",
|
||||
"expectedTotalTicks": 47,
|
||||
"maxTotalTicks": 57,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 7,
|
||||
"maxTicks": 9
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "mixed-traverse-ascend-parkour-descend",
|
||||
"expectedTotalTicks": 40,
|
||||
"maxTotalTicks": 48,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 18,
|
||||
"maxTicks": 22
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 22,
|
||||
"maxTicks": 27
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "same-move-aligned-parkour-chain",
|
||||
"expectedTotalTicks": 0,
|
||||
"maxTotalTicks": 2,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 61,
|
||||
"maxTicks": 74
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 27,
|
||||
"maxTicks": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "mixed-diagonal-ascend-traverse-descend",
|
||||
"expectedTotalTicks": 96,
|
||||
"maxTotalTicks": 116,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 32,
|
||||
"maxTicks": 39
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 26,
|
||||
"maxTicks": 32
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "speed-carry-repeated-traverse-ascend",
|
||||
"expectedTotalTicks": 66,
|
||||
"maxTotalTicks": 80,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 11,
|
||||
"maxTicks": 14
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Ascend",
|
||||
"expectedTicks": 12,
|
||||
"maxTicks": 15
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "speed-carry-repeated-traverse-descend",
|
||||
"expectedTotalTicks": 41,
|
||||
"maxTotalTicks": 50,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 22,
|
||||
"maxTicks": 27
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Descend",
|
||||
"expectedTicks": 13,
|
||||
"maxTicks": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "speed-carry-repeated-traverse-parkour",
|
||||
"expectedTotalTicks": 0,
|
||||
"maxTotalTicks": 2,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 18,
|
||||
"maxTicks": 22
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 15,
|
||||
"maxTicks": 18
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 29,
|
||||
"maxTicks": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "same-move-diagonal-chain",
|
||||
"expectedTotalTicks": 55,
|
||||
"maxTotalTicks": 66,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 7,
|
||||
"maxTicks": 9
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 7,
|
||||
"maxTicks": 9
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 9,
|
||||
"maxTicks": 11
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "same-move-straight-traverse-chain",
|
||||
"expectedTotalTicks": 70,
|
||||
"maxTotalTicks": 84,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 5,
|
||||
"maxTicks": 7
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 6,
|
||||
"maxTicks": 8
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 7,
|
||||
"maxTicks": 9
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"scenarioId": "mixed-traverse-turn-parkour-turn-traverse",
|
||||
"expectedTotalTicks": 46,
|
||||
"maxTotalTicks": 56,
|
||||
"segments": [
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 81,
|
||||
"maxTicks": 98
|
||||
},
|
||||
{
|
||||
"moveType": "Parkour",
|
||||
"expectedTicks": 14,
|
||||
"maxTicks": 17
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 7,
|
||||
"maxTicks": 9
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
},
|
||||
{
|
||||
"moveType": "Diagonal",
|
||||
"expectedTicks": 9,
|
||||
"maxTicks": 11
|
||||
},
|
||||
{
|
||||
"moveType": "Traverse",
|
||||
"expectedTicks": 8,
|
||||
"maxTicks": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue