package org.teachingextensions.logo; import org.teachingextensions.approvals.lite.Approvals; import org.teachingextensions.logo.utils.PuzzleUtils.Puzzle; import org.teachingextensions.logo.utils.PuzzleUtils.PuzzlePlayer; import org.teachingextensions.logo.utils.PuzzleUtils.PuzzleState; /** * Test a puzzle player */ public abstract class PuzzlePlayerTest { protected void verifySolution() { int[] cells = {0, 1, 2, 3, 4, 5, 6, 8, 7}; Puzzle p = new Puzzle(cells); PuzzlePlayer b = getPlayer(p); PuzzleState s = b.solve(); Approvals.verifyAll("Solve " + p, s.getHistory()); } protected abstract PuzzlePlayer getPlayer(Puzzle puzzle); protected void verifyLongSolution() { int[] cells = {0, 1, 2, 3, 4, 8, 5, 6, 7}; Puzzle p = new Puzzle(cells); PuzzlePlayer b = getPlayer(p); PuzzleState s = b.solve(); Approvals.verifyAll("From " + p + " to " + s.getPuzzle(), s.getHistory()); } }