def test_solve_medium():
    initial_board_1 = read_board("board2.csv")
    print("\nmedium board 1")
    print_board(initial_board_1)
    solved_board_1 = fast_solve.solve(initial_board_1)
    print("\nsolved board 1")
    print_board(solved_board_1)
    validate_solve(solved_board_1)
    initial_board_2 = read_board("board3.csv")
    print("\nmedium board 2")
    print_board(initial_board_2)
    solved_board_2 = fast_solve.solve(initial_board_2)
    print("\nsolved board 2")
    print_board(solved_board_2)
    validate_solve(solved_board_2)
def test_solve_impossible():
    initial_board = read_board("board5.csv")
    print("\ninitial board")
    print_board(initial_board)
    solved_board = fast_solve.solve(initial_board)
    print("\nsolved board")
    print_board(solved_board)
    validate_solve(solved_board)
def test_solve_easy():
    initial_board = read_board("board1.csv")
    print("\ninitial board")
    print_board(initial_board)
    solved_board = fast_solve.solve(initial_board)
    print("\nsolved board")
    print_board(solved_board)
    validate_solve(solved_board)
def test_kaggle():
    board_list = load_kaggle_cases(1000000)
    start_time = time.time()
    for board in board_list:
        solved_board = fast_solve.solve(board)
    end_time = time.time()
    print("solved 1,000,000 cases in {} seconds".format(end_time - start_time))
    print("average solve time = {} seconds".format(float(end_time - start_time)/1000000))