def test_solve(): for i in range(len(prompts["boards"])): puzzle = Puzzle(prompts["boards"][i], ".") assert puzzle.has_solution() assert not puzzle.is_solved() assert puzzle.solve() assert puzzle.is_solved() assert puzzle.to_string() == prompts["solutions"][i]
def test_shuffle(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") puzzle.shuffle() assert puzzle.has_solution()
def test_transpose(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") puzzle.transpose() assert puzzle.to_2D() == prompts["transpose"][order] assert puzzle.has_solution()
def test_reflect(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") puzzle.reflect() assert puzzle.to_2D() == prompts["horizontal"][order] puzzle.reflect() puzzle.reflect("vertical") assert puzzle.to_2D() == prompts["vertical"][order] assert puzzle.has_solution()
def test_rotate(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") puzzle.rotate(5) assert puzzle.to_2D() == prompts["rotated"][order] puzzle.rotate(3) assert puzzle.to_2D() == prompts["2D"][order] puzzle.rotate(-2.1) assert puzzle.to_1D() == prompts["1D"][order][::-1] assert puzzle.has_solution()
def test_formatted_string(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") assert puzzle.to_formatted_string().split() == prompts["formattedString"][order].split()
def test_string(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") assert puzzle.to_string() == prompts["string"][order]
def test_2d_array(): for order in ("4", "9"): puzzle = Puzzle(prompts["string"][order], ".") assert puzzle.to_2D() == prompts["2D"][order]
def test_unsolvable(): for i in range(len(prompts["unsolvable"])): puzzle = Puzzle(prompts["unsolvable"][i], ".") assert not puzzle.is_solved() assert not puzzle.has_solution() assert not bool(puzzle.solve())
def test_solve_second_easy(self): puzzle = Puzzle(self.second_easy) solution = puzzle.solve() self.assertEquals(solution.grid, self.solved_grid)
def test_unsolvable_puzzle(self): puzzle = Puzzle(self.unsolvable_grid) self.assertFalse(puzzle.solve())
def test_completed_section_accuracy(self): puzzle = Puzzle(self.easy_grid) puzzle.solve() self.assertEqual(puzzle.grid.section(0, 0), [[1, 2, 3], [4, 5, 6], [7, 8, 9]])
def test_completed_line_accuracy(self): puzzle = Puzzle(self.easy_grid) puzzle.solve() self.assertEqual(puzzle.grid.line(1), [4, 5, 6, 7, 8, 9, 1, 2, 3])