def test_display_board(capsys: Any) -> None: """Ensure display method prints ascii board correctly""" board_string = ('483921657967345821251876493548132976729564138136798245' '372689514814253769695417382') # display stdout for printing sudoku board with capsys.disabled(): print('\n') SB.display(SB.grid_values(board_string)) print('\n')
def test_search() -> None: """Ensure recursive search succeeds on supplied problem""" board_string = ('4.....8.5.3..........7......2.....6.....8.4......1.......' '6.3.7.5..2.....1.4......') expected_string = ('4,1,7,3,6,9,8,2,5,6,3,2,1,5,8,9,4,7,9,5,8,7,2,4,3,1,6,' '8,2,5,4,3,7,1,6,9,7,9,1,5,8,6,4,3,2,3,4,6,9,1,2,7,5,8,' '2,8,9,6,4,3,5,7,1,5,7,3,2,9,1,6,8,4,1,6,4,8,7,5,2,9,3') board = SB.grid_values(board_string) sbrd = SB() solution = sbrd.search(board) SB.display(solution) solution_string = SB.board_to_str(solution) assert solution_string == expected_string
def test_sorted_box_possibilities() -> None: """Ensure order of sorted box possibilities with given reduced board""" board_string = ('4.....8.5.3..........7......2.....6.....8.4......1.......' '6.3.7.5..2.....1.4......') expected_sort = ['G2', 'H7', 'A4', 'A6', 'E4', 'F4', 'G1', 'G3', 'G5', 'H5', 'H8', 'I4', 'I5', 'A2', 'A5', 'A8', 'B8', 'C1', 'D1', 'D4', 'D6', 'E1', 'G7', 'H2', 'H9', 'I2', 'I6', 'A3', 'B1', 'B4', 'B5', 'B7', 'C2', 'C7', 'C8', 'D3', 'D5', 'D7', 'D9', 'E2', 'E3', 'E6', 'E8', 'E9', 'F1', 'F3', 'F6', 'F7', 'F8', 'F9', 'G9', 'I7', 'I8', 'I9', 'B6', 'B9', 'C3', 'C5', 'C6', 'C9', 'B3'] board = SB.grid_values(board_string) sbrd = SB() reduced = sbrd.reduce_puzzle(board) SB.display(reduced) sorted_boxes = SB.sorted_box_possibilities(reduced) assert sorted_boxes == expected_sort