Сократить lifecycle overhead ранних ботов

This commit is contained in:
2026-08-18 03:19:52 +03:00
parent 70106e29d8
commit 6790a84d86
2 changed files with 45 additions and 18 deletions
@@ -25,6 +25,25 @@ public final class LevelPlaytestBotTest {
assertEquals("Reach the goal", result.lastStep());
}
@Test
public void sameDriverCanRestartTheCompleteScenarioThreeTimes() {
ScriptedDriver driver = new ScriptedDriver();
LevelPlaytestBot.Scenario scenario = LevelPlaytestBot.Scenario
.builder(7, "Repeated scenario")
.step("Create a corpse", 1_000L, LevelPlaytestBot.Input.right(),
snapshot -> snapshot.deaths() >= 1)
.step("Reach the goal", 1_000L, LevelPlaytestBot.Input.left(),
GameView.AutomationSnapshot::completed)
.build();
for (int pass = 1; pass <= 3; pass++) {
LevelPlaytestBot.Result result = new LevelPlaytestBot().run(driver, scenario, 5_000L);
assertTrue("Pass " + pass + ": " + result.diagnostic(), result.completed());
assertEquals("Pass " + pass, "Reach the goal", result.lastStep());
assertEquals("Pass " + pass, 1, result.deaths());
}
}
@Test
public void stepTimeoutReportsItsNameAndObservableSnapshot() {
ScriptedDriver driver = new ScriptedDriver(false);
@@ -81,6 +100,11 @@ public final class LevelPlaytestBotTest {
@Override
public void startLevel(int oneBasedLevelNumber) {
startedLevel = oneBasedLevelNumber;
nowMillis = 0L;
moveLeft = false;
moveRight = false;
deaths = 0;
completed = false;
}
@Override