def test_solve_row0_1(self): # given test_puzzle = Puzzle(3, 3, [[4, 1, 0], [2, 3, 5], [6, 7, 8]]) # when result = test_puzzle.solve_row0_tile(2) # then assert result == "ldlurdlurrdluldrruld"
def test_row0_invarient_2(self): # given test_puzzle = Puzzle(4, 5, [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) # when result = test_puzzle.row0_invariant(0) # then assert result == True
def test_solve_2x2_1(self): # given test_puzzle = Puzzle(3, 3, [[4, 3, 2], [1, 0, 5], [6, 7, 8]]) # when result = test_puzzle.solve_2x2() # then assert result == "uldrul"
def test_lower_row_invariant_true_5(self): # given test_puzzle = Puzzle(4, 5, [[7, 12, 11, 5, 3], [6, 2, 10, 9, 4], [1, 8, 13, 14, 0], [15, 16, 17, 18, 19]]) # when result = test_puzzle.lower_row_invariant(2, 4) # then assert result == True
def test_lower_row_invarient_false_5(self): # given test_puzzle = Puzzle(3, 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]]) # when result = test_puzzle.lower_row_invariant(2, 0) # then assert result == False
def test_row0_invarien_1(self): # given test_puzzle = Puzzle(3, 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]]) # when result = test_puzzle.row0_invariant(0) # then assert result == True
def test_lower_row_invarient_false_6(self): # given test_puzzle = Puzzle(4, 5, [[15, 11, 10, 9, 8], [7, 6, 5, 4, 3], [2, 1, 0, 13, 14], [12, 16, 17, 18, 19]]) # when result = test_puzzle.lower_row_invariant(2, 2) # then assert result == False
def test_solve_2x2(self): fifteen = Puzzle(2, 2, [[3, 2], [1, 0]] ) fifteen.solve_2x2() solved_fifteen = Puzzle(2, 2, [[0, 1], [2, 3]] ) self.assertEqual(fifteen._grid, solved_fifteen._grid) fifteen = Puzzle(3, 3, [[4, 3, 2], [1, 0, 5], [6, 7, 8]] ) solved_fifteen = Puzzle(3, 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]] ) fifteen.solve_2x2() self.assertEqual(fifteen._grid, solved_fifteen._grid) fifteen = Puzzle(5, 4, [[5, 4, 2, 3], [1, 0, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]) solved_fifteen = Puzzle(5, 4, [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]) fifteen.solve_2x2() self.assertEqual(fifteen._grid, solved_fifteen._grid)
def test_solve_interior_tile_2(self): # given test_puzzle = Puzzle(3, 3, [[8, 7, 6], [5, 4, 3], [2, 1, 0]]) # when assert test_puzzle.lower_row_invariant(2, 2) result = test_puzzle.solve_interior_tile(2, 2) assert test_puzzle.lower_row_invariant(2, 1) # then assert result == "uulldrruldrulddruld"
def test_solve_col0_1(self): # given test_puzzle = Puzzle(3, 3, [[3, 2, 1], [6, 5, 4], [0, 7, 8]]) # when assert test_puzzle.lower_row_invariant(2, 0) result = test_puzzle.solve_col0_tile(2) assert test_puzzle.lower_row_invariant(1, 2) # then assert result == "urr"
def test_solve_interior_tile_2(self): # given test_puzzle = Puzzle(4, 4, [[11, 2, 3, 7], [8, 5, 6, 10], [9, 1, 11, 14], [13, 4, 0, 15]]) # when assert test_puzzle.lower_row_invariant(3, 2) result = test_puzzle.solve_interior_tile(3, 2) assert test_puzzle.lower_row_invariant(3, 1) # then assert result == "urullddruld"
def test_solve_col0_2(self): # given test_puzzle = Puzzle(4, 5, [[12, 11, 10, 9, 15], [7, 6, 5, 4, 3], [2, 1, 8, 13, 14], [0, 16, 17, 18, 19]]) # when assert test_puzzle.lower_row_invariant(3, 0) result = test_puzzle.solve_col0_tile(3) print test_puzzle assert test_puzzle.lower_row_invariant(2, 4) # then assert result == "uruurrrdllurdllurdlludrulddruldruldrdlurdluurddlurrrr"
def test_solve_row1_tile(self): fifteen = Puzzle(4, 4, [[4, 6, 1, 3], [5, 2, 0, 7], [8, 9, 10, 11], [12, 13, 14, 15]] ) self.assertEqual(fifteen.solve_row1_tile(2), 'uldruldur') fifteen = Puzzle(4, 5, [[7, 6, 5, 3, 4], [2, 1, 0, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) self.assertEqual(fifteen.solve_row1_tile(2), 'ulldrruldruldur')
def test_solve_row0_tile(self): fifteen = Puzzle(4, 4, [[4, 5, 0, 3], [2, 1, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]] ) self.assertEqual(fifteen.solve_row0_tile(2), 'ldlurdlurrdluldrruld') fifteen = Puzzle(4, 5, [[1, 2, 0, 3, 4], [6, 5, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) self.assertEqual(fifteen.solve_row0_tile(2), 'ld')
def test_row1_invariant(self): fifteen = Puzzle(4, 4, [[4, 6, 1, 3], [5, 2, 0, 7], [8, 9, 10, 11], [12, 13, 14, 15]] ) self.assertEqual(fifteen.row1_invariant(2), True) fifteen1 = Puzzle(4, 4, [[4, 6, 1, 3], [0, 2, 5, 7], [8, 9, 10, 11], [12, 13, 14, 15]] ) self.assertEqual(fifteen1.row1_invariant(2), False)
def setup(self): self.test_lower_right_true_1 = Puzzle(4, 4, [[4, 2, 3, 7], [8, 5, 6, 10], [9, 1, 14, 11], [12, 13, 0, 15]]) self.test_lower_right_true_2 = Puzzle(4, 4, [[4, 2, 3, 7], [8, 5, 6, 10], [9, 1, 0, 11], [12, 13, 14, 15]]) self.test_lower_right_true_3 = Puzzle(4, 4, [[4, 2, 3, 1], [5, 0, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.test_lower_right_true_4 = Puzzle(4, 4, [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.test_lower_right_false_1 = Puzzle(4, 4, [[4, 2, 15, 7], [8, 5, 6, 10], [12, 1, 0, 11], [9, 13, 14, 3]]) self.test_lower_right_false_2 = Puzzle(4, 4, [[4, 2, 3, 7], [8, 5, 6, 10], [12, 15, 0, 11], [9, 13, 14, 1]]) self.test_lower_right_false_3 = Puzzle(4, 4, [[4, 2, 3, 1], [5, 0, 6, 7], [8, 9, 10, 11], [13, 12, 14, 15]]) self.test_lower_right_false_4 = Puzzle(4, 4, [[0, 1, 2, 3], [7, 4, 6, 5], [8, 9, 10, 11], [12, 13, 14, 15]])
def test_helper_solve_interior(self): fifteen = Puzzle(4, 4, [[4, 13, 1, 3], [5, 10, 2, 7], [8, 12, 6, 11], [9, 0, 14, 15]] ) computed = fifteen.helper_solve_interior(target_solved_row=2, target_solved_col=2, zero_row=3, zero_col=1, solved_val_row=0, solved_val_col=1) self.assertEqual(computed, 'uulddruld') fifteen = Puzzle(4, 4, [[4, 13, 1, 3], [5, 10, 2, 7], [8, 12, 6, 11], [9, 0, 14, 15]] ) computed = fifteen.helper_solve_interior(0, 3, zero_row=3, zero_col=1, solved_val_row=0, solved_val_col=1)
def test_solve_row1_tile(self): fifteen = Puzzle( 4, 4, [[4, 6, 1, 3], [5, 2, 0, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.assertEqual(fifteen.solve_row1_tile(2), 'uldruldur') fifteen = Puzzle(4, 5, [[7, 6, 5, 3, 4], [2, 1, 0, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) self.assertEqual(fifteen.solve_row1_tile(2), 'ulldrruldruldur')
def test_solve_row0_tile(self): fifteen = Puzzle( 4, 4, [[4, 5, 0, 3], [2, 1, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.assertEqual(fifteen.solve_row0_tile(2), 'ldlurdlurrdluldrruld') fifteen = Puzzle(4, 5, [[1, 2, 0, 3, 4], [6, 5, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) self.assertEqual(fifteen.solve_row0_tile(2), 'ld')
def test_row1_invariant(self): fifteen = Puzzle( 4, 4, [[4, 6, 1, 3], [5, 2, 0, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.assertEqual(fifteen.row1_invariant(2), True) fifteen1 = Puzzle( 4, 4, [[4, 6, 1, 3], [0, 2, 5, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.assertEqual(fifteen1.row1_invariant(2), False)
def test_solve_puzzle(self): fifteen = Puzzle(4, 4, [[5, 3, 6, 7], [2, 14, 15, 9], [11, 8, 4, 1], [0, 10, 13, 12]] ) # print(fifteen) # fifteen.solve_puzzle() # print(fifteen) fifteen = Puzzle(3, 3, [[8, 7, 6], [5, 4, 3], [2, 1, 0]] ) # print(fifteen) # fifteen.solve_puzzle() # print(fifteen) fifteen = Puzzle(4, 5, [[15, 16, 0, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [1, 2, 17, 18, 19]] ) # print(fifteen) # fifteen.solve_puzzle() # print(fifteen) fifteen = Puzzle(4, 5, [[15, 16, 0, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [1, 2, 17, 18, 19]], 'UNDER CONSTRUCTION' ) # print(fifteen) # print(fifteen.solve_puzzle()) # print(fifteen) fifteen = Puzzle(2, 4, [[0, 3, 2, 7], [4, 5, 6, 1]], 'UNDER CONSTRUCTION' ) print(fifteen) fifteen.solve_puzzle()
def test_helper_solve_interior(self): fifteen = Puzzle( 4, 4, [[4, 13, 1, 3], [5, 10, 2, 7], [8, 12, 6, 11], [9, 0, 14, 15]]) computed = fifteen.helper_solve_interior(target_solved_row=2, target_solved_col=2, zero_row=3, zero_col=1, solved_val_row=0, solved_val_col=1) self.assertEqual(computed, 'uulddruld') fifteen = Puzzle( 4, 4, [[4, 13, 1, 3], [5, 10, 2, 7], [8, 12, 6, 11], [9, 0, 14, 15]]) computed = fifteen.helper_solve_interior(0, 3, zero_row=3, zero_col=1, solved_val_row=0, solved_val_col=1)
def test_row0_invariant(self): fifteen = Puzzle( 4, 4, [[4, 2, 0, 3], [5, 1, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]])
def test_solve_interior_tile(self): fifteen = Puzzle(4, 4) fifteen._grid[0][0] = 4 fifteen._grid[0][1] = 13 fifteen._grid[0][2] = 1 fifteen._grid[0][3] = 3 fifteen._grid[1][0] = 5 fifteen._grid[1][1] = 10 fifteen._grid[1][2] = 2 fifteen._grid[1][3] = 7 fifteen._grid[2][0] = 8 fifteen._grid[2][1] = 12 fifteen._grid[2][2] = 6 fifteen._grid[2][3] = 11 fifteen._grid[3][0] = 9 fifteen._grid[3][1] = 0 fifteen._grid[3][2] = 14 fifteen._grid[3][3] = 15 self.assertEqual(fifteen.lower_row_invariant(3, 1), True) self.assertEqual(fifteen.lower_row_invariant(0, 0), False) self.assertEqual(fifteen.lower_row_invariant(0, 1), False) self.assertEqual(fifteen.lower_row_invariant(0, 2), False) self.assertEqual(fifteen.lower_row_invariant(0, 3), False) self.assertEqual(fifteen.lower_row_invariant(1, 0), False) self.assertEqual(fifteen.lower_row_invariant(1, 1), False) self.assertEqual(fifteen.lower_row_invariant(1, 2), False) self.assertEqual(fifteen.lower_row_invariant(1, 3), False) self.assertEqual(fifteen.lower_row_invariant(2, 0), False) self.assertEqual(fifteen.lower_row_invariant(2, 1), False) self.assertEqual(fifteen.lower_row_invariant(2, 2), False) self.assertEqual(fifteen.lower_row_invariant(2, 3), False) self.assertEqual(fifteen.lower_row_invariant(3, 0), False) self.assertEqual(fifteen.lower_row_invariant(3, 2), False) self.assertEqual(fifteen.lower_row_invariant(3, 3), False) fifteen.solve_interior_tile(3, 1) self.assertEqual(fifteen.lower_row_invariant(3, 0), True) fifteen = Puzzle(4, 4) fifteen._grid[0][0] = 14 fifteen._grid[3][2] = 0 fifteen.solve_interior_tile(3, 2) solved_through_strings = Puzzle(4, 4) solved_through_strings._grid[0][0] = 14 solved_through_strings._grid[3][2] = 0 solved_through_strings.update_puzzle('uuulldrruldrulddrulddruld') for val1, val2 in zip(fifteen._grid, solved_through_strings._grid): assert val1 == val2 fifteen = Puzzle(4, 4) fifteen._grid[0][0] = 3 fifteen._grid[0][-1] = 13 fifteen._grid[3][1] = 0 fifteen.solve_interior_tile(3, 1) fifteen = Puzzle(4, 4) fifteen._grid[2][1] = 10 fifteen._grid[2][2] = 0 fifteen._grid[0][0] = 9 fifteen.solve_interior_tile(2, 2) fifteen = Puzzle(4, 4) fifteen._grid[2][1] = 11 fifteen._grid[2][-1] = 0 fifteen._grid[0][0] = 9 fifteen.solve_interior_tile(2, 3)
def test_solve_col0_tile(self): fifteen = Puzzle(4, 4) fifteen._grid[3][0] = 0 fifteen._grid[2][3] = 11 fifteen._grid[0][0] = 12 fifteen.solve_col0_tile(3) fifteen = Puzzle(4, 4) fifteen._grid[3][0] = 0 fifteen._grid[2][0] = 12 fifteen._grid[0][0] = 8 self.assertEqual(fifteen.solve_col0_tile(3), 'urrr', 'Test solve col0') self.assertEqual(fifteen._grid[2][3], 0, 'should be at end of row-1') obj = Puzzle(4, 5, [[12, 11, 10, 9, 15], [7, 6, 5, 4, 3], [2, 1, 8, 13, 14], [0, 16, 17, 18, 19]]) self.assertEqual(obj.solve_col0_tile(3), 'uruurrrdllurdllurdlulddruldruldrdlurdluurddlurrrr')
from fifteen import Puzzle puzzle = Puzzle(4, 4) print str(puzzle) t = puzzle.lower_row_invariant(2, 2) print t #puzzle.set_number(0, 1, 13) #puzzle.set_number(3, 1, 1) puzzle.set_number(0, 0, 10) puzzle.set_number(2, 2, 0) print str(puzzle) t = puzzle.lower_row_invariant(2, 2) print t
class TestPuzzle(object): @pytest.fixture(autouse=True) def setup(self): self.test_lower_right_true_1 = Puzzle(4, 4, [[4, 2, 3, 7], [8, 5, 6, 10], [9, 1, 14, 11], [12, 13, 0, 15]]) self.test_lower_right_true_2 = Puzzle(4, 4, [[4, 2, 3, 7], [8, 5, 6, 10], [9, 1, 0, 11], [12, 13, 14, 15]]) self.test_lower_right_true_3 = Puzzle(4, 4, [[4, 2, 3, 1], [5, 0, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.test_lower_right_true_4 = Puzzle(4, 4, [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]) self.test_lower_right_false_1 = Puzzle(4, 4, [[4, 2, 15, 7], [8, 5, 6, 10], [12, 1, 0, 11], [9, 13, 14, 3]]) self.test_lower_right_false_2 = Puzzle(4, 4, [[4, 2, 3, 7], [8, 5, 6, 10], [12, 15, 0, 11], [9, 13, 14, 1]]) self.test_lower_right_false_3 = Puzzle(4, 4, [[4, 2, 3, 1], [5, 0, 6, 7], [8, 9, 10, 11], [13, 12, 14, 15]]) self.test_lower_right_false_4 = Puzzle(4, 4, [[0, 1, 2, 3], [7, 4, 6, 5], [8, 9, 10, 11], [12, 13, 14, 15]]) def test_lower_row_invariant_true_1(self): # when result = self.test_lower_right_true_1.lower_row_invariant(3, 2) # then assert result == True def test_lower_row_invariant_true_2(self): # when result = self.test_lower_right_true_2.lower_row_invariant(2, 2) # then def test_lower_row_invariant_true_3(self): # when result = self.test_lower_right_true_3.lower_row_invariant(1, 1) # then assert result == True def test_lower_row_invariant_true_4(self): # when result = self.test_lower_right_true_4.lower_row_invariant(0, 0) # then assert result == True def test_lower_row_invariant_true_5(self): # given test_puzzle = Puzzle(4, 5, [[7, 12, 11, 5, 3], [6, 2, 10, 9, 4], [1, 8, 13, 14, 0], [15, 16, 17, 18, 19]]) # when result = test_puzzle.lower_row_invariant(2, 4) # then assert result == True def test_lower_row_invariant_false_1(self): # when result = self.test_lower_right_false_1.lower_row_invariant(3, 2) # then assert result == False def test_lower_row_invariant_false_2(self): # when result = self.test_lower_right_false_2.lower_row_invariant(2, 2) # then assert result == False def test_lower_row_invariant_false_3(self): # when result = self.test_lower_right_false_3.lower_row_invariant(1, 1) # then assert result == False def test_lower_row_invariant_false_4(self): # when result = self.test_lower_right_false_4.lower_row_invariant(0, 0) # then assert result == False def test_lower_row_invarient_false_5(self): # given test_puzzle = Puzzle(3, 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]]) # when result = test_puzzle.lower_row_invariant(2, 0) # then assert result == False def test_lower_row_invarient_false_6(self): # given test_puzzle = Puzzle(4, 5, [[15, 11, 10, 9, 8], [7, 6, 5, 4, 3], [2, 1, 0, 13, 14], [12, 16, 17, 18, 19]]) # when result = test_puzzle.lower_row_invariant(2, 2) # then assert result == False def test_solve_interior_tile_1(self): # given test_puzzle = Puzzle(4, 4, [[6, 2, 3, 7], [8, 5, 14, 10], [9, 1, 11, 12], [13, 4, 0, 15]]) # when assert test_puzzle.lower_row_invariant(3, 2) result = test_puzzle.solve_interior_tile(3, 2) print test_puzzle assert test_puzzle.lower_row_invariant(3, 1) # then assert result == "uulddruld" def test_solve_interior_tile_2(self): # given test_puzzle = Puzzle(4, 4, [[11, 2, 3, 7], [8, 5, 6, 10], [9, 1, 11, 14], [13, 4, 0, 15]]) # when assert test_puzzle.lower_row_invariant(3, 2) result = test_puzzle.solve_interior_tile(3, 2) assert test_puzzle.lower_row_invariant(3, 1) # then assert result == "urullddruld" def test_solve_interior_tile_2(self): # given test_puzzle = Puzzle(3, 3, [[8, 7, 6], [5, 4, 3], [2, 1, 0]]) # when assert test_puzzle.lower_row_invariant(2, 2) result = test_puzzle.solve_interior_tile(2, 2) assert test_puzzle.lower_row_invariant(2, 1) # then assert result == "uulldrruldrulddruld" def test_solve_col0_1(self): # given test_puzzle = Puzzle(3, 3, [[3, 2, 1], [6, 5, 4], [0, 7, 8]]) # when assert test_puzzle.lower_row_invariant(2, 0) result = test_puzzle.solve_col0_tile(2) assert test_puzzle.lower_row_invariant(1, 2) # then assert result == "urr" def test_solve_col0_2(self): # given test_puzzle = Puzzle(4, 5, [[12, 11, 10, 9, 15], [7, 6, 5, 4, 3], [2, 1, 8, 13, 14], [0, 16, 17, 18, 19]]) # when assert test_puzzle.lower_row_invariant(3, 0) result = test_puzzle.solve_col0_tile(3) print test_puzzle assert test_puzzle.lower_row_invariant(2, 4) # then assert result == "uruurrrdllurdllurdlludrulddruldruldrdlurdluurddlurrrr" def test_row0_invarien_1(self): # given test_puzzle = Puzzle(3, 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]]) # when result = test_puzzle.row0_invariant(0) # then assert result == True def test_row0_invarient_2(self): # given test_puzzle = Puzzle(4, 5, [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) # when result = test_puzzle.row0_invariant(0) # then assert result == True def test_solve_row0_1(self): # given test_puzzle = Puzzle(3, 3, [[4, 1, 0], [2, 3, 5], [6, 7, 8]]) # when result = test_puzzle.solve_row0_tile(2) # then assert result == "ldlurdlurrdluldrruld" def test_solve_2x2_1(self): # given test_puzzle = Puzzle(3, 3, [[4, 3, 2], [1, 0, 5], [6, 7, 8]]) # when result = test_puzzle.solve_2x2() # then assert result == "uldrul"
def test_solve_2x2(self): fifteen = Puzzle(2, 2, [[3, 2], [1, 0]]) fifteen.solve_2x2() solved_fifteen = Puzzle(2, 2, [[0, 1], [2, 3]]) self.assertEqual(fifteen._grid, solved_fifteen._grid) fifteen = Puzzle(3, 3, [[4, 3, 2], [1, 0, 5], [6, 7, 8]]) solved_fifteen = Puzzle(3, 3, [[0, 1, 2], [3, 4, 5], [6, 7, 8]]) fifteen.solve_2x2() self.assertEqual(fifteen._grid, solved_fifteen._grid) fifteen = Puzzle(5, 4, [[5, 4, 2, 3], [1, 0, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]) solved_fifteen = Puzzle(5, 4, [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]) fifteen.solve_2x2() self.assertEqual(fifteen._grid, solved_fifteen._grid)
def test_solve_puzzle(self): fifteen = Puzzle( 4, 4, [[5, 3, 6, 7], [2, 14, 15, 9], [11, 8, 4, 1], [0, 10, 13, 12]]) # print(fifteen) # fifteen.solve_puzzle() # print(fifteen) fifteen = Puzzle(3, 3, [[8, 7, 6], [5, 4, 3], [2, 1, 0]]) # print(fifteen) # fifteen.solve_puzzle() # print(fifteen) fifteen = Puzzle(4, 5, [[15, 16, 0, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [1, 2, 17, 18, 19]]) # print(fifteen) # fifteen.solve_puzzle() # print(fifteen) fifteen = Puzzle(4, 5, [[15, 16, 0, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [1, 2, 17, 18, 19]], 'UNDER CONSTRUCTION') # print(fifteen) # print(fifteen.solve_puzzle()) # print(fifteen) fifteen = Puzzle(2, 4, [[0, 3, 2, 7], [4, 5, 6, 1]], 'UNDER CONSTRUCTION') print(fifteen) fifteen.solve_puzzle()
def test_lower_row_invariant(self): fifteen = Puzzle(4, 4) fifteen._grid[0][0], fifteen._grid[2][1] = fifteen._grid[2][1], \ fifteen._grid[0][0] self.assertEqual(fifteen.lower_row_invariant(2, 1), True) fifteen = Puzzle(4, 4) fifteen._grid[0][0], fifteen._grid[2][1] = fifteen._grid[2][1], \ fifteen._grid[0][0] fifteen._grid[0][1], fifteen._grid[3][2] = fifteen._grid[3][2], \ fifteen._grid[0][1] self.assertEqual(fifteen.lower_row_invariant(2, 1), False) fifteen = Puzzle(4, 4) self.assertEqual(fifteen.lower_row_invariant(0, 0), True) fifteen = Puzzle(4, 4) fifteen._grid[0][1], fifteen._grid[0][2] = fifteen._grid[0][2], \ fifteen._grid[0][1] self.assertEqual(fifteen.lower_row_invariant(0, 0), False)