def test_possible_moves_2x4(): setup_1 = [0, 2, 3, 1, 4, 6, 7, 5] setup_2 = [1, 2, 3, 0, 4, 6, 7, 5] setup_3 = [1, 2, 3, 4, 0, 6, 7, 5] setup_4 = [1, 2, 3, 4, 5, 6, 7, 0] setup_5 = [1, 2, 3, 4, 5, 0, 7, 6] puzzle_1 = Puzzle(2, setup_1) possible_moves_p1 = [ 'move_wrapping', 'move_diagonal_short', 'move_diagonal_long', 'move_right', 'move_down' ] assert puzzle_1.possible_moves() == possible_moves_p1 puzzle_2 = Puzzle(2, setup_2) possible_moves_p2 = [ 'move_wrapping', 'move_diagonal_short', 'move_diagonal_long', 'move_left', 'move_down' ] assert puzzle_2.possible_moves() == possible_moves_p2 puzzle_3 = Puzzle(2, setup_3) possible_moves_p3 = [ 'move_wrapping', 'move_diagonal_short', 'move_diagonal_long', 'move_right', 'move_up' ] assert puzzle_3.possible_moves() == possible_moves_p3 puzzle_4 = Puzzle(2, setup_4) possible_moves_p4 = [ 'move_wrapping', 'move_diagonal_short', 'move_diagonal_long', 'move_left', 'move_up' ] assert puzzle_4.possible_moves() == possible_moves_p4 puzzle_5 = Puzzle(2, setup_5) possible_moves_p5 = ['move_right', 'move_left', 'move_up'] assert puzzle_5.possible_moves() == possible_moves_p5 return
def test_possible_moves_other_sizes(): setup_6 = [1, 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, 8] setup_7 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0] puzzle_6 = Puzzle(2, setup_6) possible_moves_p6 = ['move_right', 'move_left', 'move_up'] assert puzzle_6.possible_moves() == possible_moves_p6 puzzle_7 = Puzzle(3, setup_6) possible_moves_p7 = ['move_left', 'move_down', 'move_up'] assert puzzle_7.possible_moves() == possible_moves_p7 puzzle_8 = Puzzle(4, setup_6) possible_moves_p8 = ['move_right', 'move_left', 'move_down', 'move_up'] assert puzzle_8.possible_moves() == possible_moves_p8 puzzle_9 = Puzzle(4, setup_7) possible_moves_p9 = [ 'move_wrapping', 'move_diagonal_short', 'move_diagonal_long', 'move_left', 'move_up' ] assert puzzle_9.possible_moves() == possible_moves_p9 return