Example #1
0
 def generate_sudoku(self):
     """make a sudoku game, according to Level in settings, and save it in a file"""
     minimum_limit_of_dots = int(self.current_settings["min"])
     maximum_limit_of_dots = int(self.current_settings["max"])
     generator = SudokuGenerator(minimum_limit_of_dots, maximum_limit_of_dots)
     sudoku_generated = generator.generate_sudoku()
     self.writer.save_to_file(sudoku_generated, "../custom_games/sudoku_generated")
     self.menu.status = self.go_main_menu_option
Example #2
0
    def setUp(self):
        self.gen = SudokuGenerator()
        self.quad = self.gen.gen_quad()
        self.bad_quad1 = np.array([[3, 4, 3], [0, 6, 0], [1, 5, 8]])

        self.bad_quad2 = np.array([[3, 4, 3], [7, 6, 2], [1, 5, 8]])

        self.bad_quad3 = np.array([[0, 0, 5], [0, 0, 0], [5, 0, 0]])

        self.zer_quad = np.zeros((3, 3)).astype("int")
        pass
Example #3
0
    def execute_generate_sudoku_option(self, generate_opts):
        """Executes the action selected by the user save sudoku on TXT file or diplay in console

            Keyword arguments:
            generate_opts -- takes one of the two options, 
                             generated sudoku could be displayed in console, or in a file
        """
        if generate_opts in ['1', '2']:
            complexity = self.configuration.get_complexity()
            min_holes = self.configuration.get_min_holes_by_complexity(
                complexity)
            max_holes = self.configuration.get_max_holes_by_complexity(
                complexity)
            empty_spot_char = self.configuration.get_empty_spot_char()
            sudoku_generator = SudokuGenerator()
            sudoku_generator.generate_sudoku_pattern_by_complexity(
                min_holes, max_holes, empty_spot_char)

        if generate_opts == "1":
            # save sudoku generated in file
            name_sudoku = "sudoku_generated_" + time.strftime("%Y-%m-%dT%H-%M-%S",\
                                                time.localtime(time.time())) + ".txt"

            if self.export_sudoku.export_sudoku(
                    sudoku_generator.sudoku_pattern, 'txt', "../results/",
                    name_sudoku) is True:
                print "\nSudoku was saved to: '", name_sudoku, "'"
                self.display_main_menu()

            else:
                print "\nFailed to save in TXT file. Try again...!"
                self.display_generate_sudoku_menu()

        if generate_opts == "2":
            # display generate sudoku in console
            print "\nGenerated Sudoku:\n"
            self.export_sudoku.export_sudoku(sudoku_generator.sudoku_pattern,
                                             'cmd line', '', '')
            self.display_main_menu()

        if generate_opts == "3":
            self.display_main_menu()
Example #4
0
    def execute_generate_sudoku_option(self, generate_opts): 
        """Executes the action selected by the user save sudoku on TXT file or diplay in console

            Keyword arguments:
            generate_opts -- takes one of the two options, 
                             generated sudoku could be displayed in console, or in a file
        """ 
        if generate_opts in ['1', '2']:
            complexity = self.configuration.get_complexity()
            min_holes = self.configuration.get_min_holes_by_complexity(complexity)
            max_holes = self.configuration.get_max_holes_by_complexity(complexity)
            empty_spot_char = self.configuration.get_empty_spot_char()
            sudoku_generator = SudokuGenerator()
            sudoku_generator.generate_sudoku_pattern_by_complexity(min_holes, max_holes, 
                                                                   empty_spot_char)

        if generate_opts == "1":
            # save sudoku generated in file
            name_sudoku = "sudoku_generated_" + time.strftime("%Y-%m-%dT%H-%M-%S",\
                                                time.localtime(time.time())) + ".txt"

            if self.export_sudoku.export_sudoku(sudoku_generator.sudoku_pattern,
                                                 'txt', "../results/", name_sudoku) is True:
                print "\nSudoku was saved to: '",name_sudoku,"'"                
                self.display_main_menu()

            else:
                print "\nFailed to save in TXT file. Try again...!"                
                self.display_generate_sudoku_menu()              

        if generate_opts == "2":
            # display generate sudoku in console
            print "\nGenerated Sudoku:\n"
            self.export_sudoku.export_sudoku(sudoku_generator.sudoku_pattern, 'cmd line', '', '')
            self.display_main_menu()
            
        if generate_opts == "3":
            self.display_main_menu()
Example #5
0
class TestSudokuGenerator(unittest.TestCase):
    def setUp(self):
        self.gen = SudokuGenerator()
        self.quad = self.gen.gen_quad()
        self.bad_quad1 = np.array([[3, 4, 3], [0, 6, 0], [1, 5, 8]])

        self.bad_quad2 = np.array([[3, 4, 3], [7, 6, 2], [1, 5, 8]])

        self.bad_quad3 = np.array([[0, 0, 5], [0, 0, 0], [5, 0, 0]])

        self.zer_quad = np.zeros((3, 3)).astype("int")
        pass

    def test_gen_quad(self):
        self.assertTrue(
            np.count_nonzero(np.unique(self.quad)) == np.count_nonzero(
                self.quad))

    def test_sec_valid(self):
        self.assertFalse(self.gen.quad_valid(self.bad_quad1))
        self.assertFalse(self.gen.quad_valid(self.bad_quad2))
        self.assertFalse(self.gen.quad_valid(self.bad_quad3))
        self.assertTrue(self.gen.quad_valid(self.zer_quad))
        self.assertTrue(self.gen.quad_valid(self.quad))
Example #6
0
class TestGenerator(unittest.TestCase):

    def setUp(self):
        self.minimum_limit = 30
        self.maximum_limit = 40
        self.generator = SudokuGenerator(self.minimum_limit, self.maximum_limit)
        self.generator.fill_board()
        self.generator.fill_puzzle_with_dots()

    def test_generate_empty_board(self):
        expected_easy_puzzle = None
        self.assertEqual(expected_easy_puzzle, self.generator.clean_board())

    def test_parsed_puzzle(self):
        expected_result = self.generator.create_board_to_txt()
        self.assertTrue(re.match('0123456789+-_|', expected_result))
 def setUp(self):
 	self.test_generator = SudokuGenerator()
class TestSudokuGenerator(unittest.TestCase): 
    def setUp(self):
    	self.test_generator = SudokuGenerator()
    
    def test_is_valid_row_returns_false_when_duplicated_in_the_row_0(self):
    	self.test_generator.board_list =[[1, 4, 4, 3, 5, 6, 7, 8, 9],
    									 [2, 3, 5, 4, 6, 7, 8, 9, 1],
    									 [3, 5, 6, 7, 4, 8, 9, 1, 2],
    									 [4, 6, 7, 8, 9, 1, 2, 3, 5],
    									 [5, 7, 8, 9, 1, 2, 3, 4, 6],
    									 [6, 8, 9, 1, 2, 3, 4, 5, 7],
    									 [7, 9, 1, 2, 3, 4, 5, 6, 8],
    									 [8, 1, 2, 3, 4, 5, 6, 7, 9],
    									 [9, 2, 3, 4, 5, 6, 7, 8, 1]]

    	self.assertFalse(self.test_generator.is_valid_row(0))

    def test_is_valid_row_returns_false_when_duplicated_in_middle_row(self):
    	self.test_generator.board_list =[[1, 2, 4, 3, 5, 6, 7, 8, 9],
    									 [2, 3, 5, 4, 6, 7, 8, 9, 1],
    									 [3, 5, 6, 7, 4, 8, 9, 1, 2],
    									 [4, 6, 7, 8, 9, 1, 2, 3, 5],
    									 [5, 7, 8, 9, 1, 2, 5, 4, 6],
    									 [6, 8, 9, 1, 2, 3, 4, 5, 7],
    									 [7, 9, 1, 2, 3, 4, 5, 6, 8],
    									 [8, 1, 2, 3, 4, 5, 6, 9, 9],
    									 [9, 2, 3, 4, 5, 6, 8, 8, 1]]

    	self.assertFalse(self.test_generator.is_valid_row(4))

    def test_is_valid_row_returns_true_when_no_duplicate_in_row_0(self):
        self.test_generator.board_list =[[1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 5, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 8],
                                         [8, 1, 2, 3, 4, 5, 6, 9, 9],
                                         [9, 2, 3, 4, 5, 6, 8, 8, 1]]

        self.assertTrue(self.test_generator.is_valid_row(0))

    def test_is_valid_row_returns_true_when_no_duplicate_in_last_row(self):
        self.test_generator.board_list =[[1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 5, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 8],
                                         [8, 1, 2, 3, 4, 5, 6, 9, 9],
                                         [9, 2, 3, 4, 5, 6, 8, 7, 1]]

        self.assertTrue(self.test_generator.is_valid_row(8))

    def test_is_valid_col_returns_false_when_duplicate_in_col_0(self):
        self.test_generator.board_list =[[9, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 5, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 8],
                                         [8, 1, 2, 3, 4, 5, 6, 9, 9],
                                         [9, 2, 3, 4, 5, 6, 8, 7, 1]]

        self.assertFalse(self.test_generator.is_valid_col(0))

    def test_is_valid_col_returns_false_when_duplicate_in_last_col(self):
        self.test_generator.board_list =[[9, 2, 3, 4, 5, 6, 7, 8, 3],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 5, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 1],
                                         [8, 1, 2, 3, 4, 5, 6, 9, 9],
                                         [9, 2, 3, 4, 5, 6, 8, 7, 8]]

        self.assertFalse(self.test_generator.is_valid_col(8))

    def test_is_valid_col_returns_true_when_no_duplicate_in_col_0(self):
        self.test_generator.board_list =[[9, 2, 3, 4, 5, 6, 7, 8, 3],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 5, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 1],
                                         [8, 1, 2, 3, 4, 5, 6, 9, 9],
                                         [1, 2, 3, 4, 5, 6, 8, 7, 8]]

        self.assertTrue(self.test_generator.is_valid_col(0))

    def test_is_valid_col_returns_true_when_no_duplicate_in_col_7(self):
        self.test_generator.board_list =[[9, 2, 3, 4, 5, 6, 7, 8, 3],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 5, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 1],
                                         [8, 1, 2, 3, 4, 5, 6, 2, 9],
                                         [1, 2, 3, 4, 5, 6, 8, 7, 8]]

        self.assertTrue(self.test_generator.is_valid_col(7))

    def test_is_valid_square_returns_false_when_duplicate_in_square_0(self):
        self.test_generator.board_list =[[6, 5, 7, 1, 8, 4, 3, 2, 9],
                                         [9, 6, 8, 7, 3, 6, 4, 1, 5],
                                         [4, 3, 1, 2, 9, 5, 7, 6, 8],
                                         [2, 8, 6, 3, 5, 9, 1, 4, 7],
                                         [7, 9, 5, 4, 2, 1, 8, 3, 6],
                                         [3, 1, 4, 8, 6, 7, 5, 9, 2],
                                         [8, 7, 9, 6, 1, 3, 2, 5, 4],
                                         [1, 6, 2, 5, 4, 8, 9, 7, 3],
                                         [5, 4, 3, 9, 7, 2, 6, 8, 1]]

        self.assertFalse(self.test_generator.is_valid_square(0))

    def test_is_valid_square_returns_false_when_duplicate_in_last_square(self):
        self.test_generator.board_list =[[6, 5, 7, 1, 8, 4, 3, 2, 9],
                                         [9, 6, 8, 7, 3, 6, 4, 1, 5],
                                         [4, 3, 1, 2, 9, 5, 7, 6, 8],
                                         [2, 8, 6, 3, 5, 9, 1, 4, 7],
                                         [7, 9, 5, 4, 2, 1, 8, 3, 6],
                                         [3, 1, 4, 8, 6, 7, 5, 9, 2],
                                         [8, 7, 9, 6, 1, 3, 2, 5, 4],
                                         [1, 6, 2, 5, 4, 8, 7, 7, 3],
                                         [5, 4, 3, 9, 7, 2, 6, 8, 1]]

        self.assertFalse(self.test_generator.is_valid_square(8))

    def test_is_valid_square_returns_true_when_no_duplicate_in_square_0(self):
        self.test_generator.board_list =[[6, 5, 7, 1, 8, 4, 3, 2, 9],
                                         [9, 2, 8, 7, 3, 6, 4, 1, 5],
                                         [4, 3, 1, 2, 9, 5, 7, 6, 8],
                                         [2, 8, 6, 3, 5, 9, 1, 4, 7],
                                         [7, 9, 5, 4, 2, 1, 8, 3, 6],
                                         [3, 1, 4, 8, 6, 7, 5, 9, 2],
                                         [8, 7, 9, 6, 1, 3, 2, 5, 4],
                                         [1, 6, 2, 5, 4, 8, 9, 7, 3],
                                         [5, 4, 3, 9, 7, 2, 6, 8, 1]]

        self.assertTrue(self.test_generator.is_valid_square(0))

    def test_is_valid_square_returns_true_when_no_duplicate_in_last_square(self):
        self.test_generator.board_list =[[6, 5, 7, 1, 8, 4, 3, 2, 9],
                                         [9, 2, 8, 7, 3, 6, 4, 1, 5],
                                         [4, 3, 1, 2, 9, 5, 7, 6, 8],
                                         [2, 8, 6, 3, 5, 9, 1, 4, 7],
                                         [7, 9, 5, 4, 2, 1, 8, 3, 6],
                                         [3, 1, 4, 8, 6, 7, 5, 9, 2],
                                         [8, 7, 9, 6, 1, 3, 2, 5, 4],
                                         [1, 6, 2, 5, 4, 8, 9, 7, 3],
                                         [5, 4, 3, 9, 7, 2, 6, 8, 1]]

        self.assertTrue(self.test_generator.is_valid_square(8))

    def test_is_valid_board_returns_true_when_no_duplicate_in_sudoku_board(self):
        self.test_generator.board_list =[[6, 5, 7, 1, 8, 4, 3, 2, 9],
                                         [9, 2, 8, 7, 3, 6, 4, 1, 5],
                                         [4, 3, 1, 2, 9, 5, 7, 6, 8],
                                         [2, 8, 6, 3, 5, 9, 1, 4, 7],
                                         [7, 9, 5, 4, 2, 1, 8, 3, 6],
                                         [3, 1, 4, 8, 6, 7, 5, 9, 2],
                                         [8, 7, 9, 6, 1, 3, 2, 5, 4],
                                         [1, 6, 2, 5, 4, 8, 9, 7, 3],
                                         [5, 4, 3, 9, 7, 2, 6, 8, 1]]

        self.assertTrue(self.test_generator.is_valid_board())

    def test_is_valid_board_returns_false_when_duplicates_in_sudoku_board(self):
        self.test_generator.board_list =[[1, 4, 4, 3, 5, 6, 7, 8, 9],
                                         [2, 3, 5, 4, 6, 7, 8, 9, 1],
                                         [3, 5, 6, 7, 4, 8, 9, 1, 2],
                                         [4, 6, 7, 8, 9, 1, 2, 3, 5],
                                         [5, 7, 8, 9, 1, 2, 3, 4, 6],
                                         [6, 8, 9, 1, 2, 3, 4, 5, 7],
                                         [7, 9, 1, 2, 3, 4, 5, 6, 8],
                                         [8, 1, 2, 3, 4, 5, 6, 7, 9],
                                         [9, 2, 3, 4, 5, 6, 7, 8, 1]]

        self.assertFalse(self.test_generator.is_valid_board())

    def test_get_positions_returns_a_list_with_positions(self):
        exp_positions = [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0),
                         (0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1),
                         (0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (8, 2),
                         (0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3), (8, 3),
                         (0, 4), (1, 4), (2, 4), (3, 4), (4, 4), (5, 4), (6, 4), (7, 4), (8, 4),
                         (0, 5), (1, 5), (2, 5), (3, 5), (4, 5), (5, 5), (6, 5), (7, 5), (8, 5),
                         (0, 6), (1, 6), (2, 6), (3, 6), (4, 6), (5, 6), (6, 6), (7, 6), (8, 6),
                         (0, 7), (1, 7), (2, 7), (3, 7), (4, 7), (5, 7), (6, 7), (7, 7), (8, 7),
                         (0, 8), (1, 8), (2, 8), (3, 8), (4, 8), (5, 8), (6, 8), (7, 8), (8, 8)]

        self.assertEquals(exp_positions, self.test_generator.get_positions())

    def test_fill_board_returns_true_if_valid_sudoku_was_generated(self):
        positions = self.test_generator.get_positions()
        valid_board = self.test_generator.fill_board(positions,0)
        expected_valid_status = True
        self.assertEquals(expected_valid_status, valid_board)

    def test_generate_random_positions_does_not_return_an_empty_list(self):
        size_list = 4
        list_positions = self.test_generator.generate_random_positions(size_list)
        self.assertEquals(size_list, len(list_positions))

    def test_get_board_format_to_string_returns_multiline_string_format_when_board_numeric(self):
        board_to_format = [[1, 4, 4, 3, 5, 6, 7, 8, 9],
                           [2, 3, 5, 4, 6, 7, 8, 9, 1],
                           [3, 5, 6, 7, 4, 8, 9, 1, 2],
                           [4, 6, 7, 8, 9, 1, 2, 3, 5],
                           [5, 7, 8, 9, 1, 2, 3, 4, 6],
                           [6, 8, 9, 1, 2, 3, 4, 5, 7],
                           [7, 9, 1, 2, 3, 4, 5, 6, 8],
                           [8, 1, 2, 3, 4, 5, 6, 7, 9],
                           [9, 2, 3, 4, 5, 6, 7, 8, 1]]
        expected_board_string = "144356789\n" + \
                                "235467891\n" + \
                                "356748912\n" + \
                                "467891235\n" + \
                                "578912346\n" + \
                                "689123457\n" + \
                                "791234568\n" + \
                                "812345679\n" + \
                                "923456781\n"
        current_board_string = self.test_generator.get_board_format_to_string(board_to_format)
        self.assertEquals(expected_board_string, current_board_string)

    def test_get_board_format_to_string_returns_multiline_string_format_when_board_string(self):
        board_to_format = [['1', '.', '.', '5', '4', '9', '6', '8', '3'],
                           ['6', '4', '5', '.', '.', '3', '2', '.', '9'],
                           ['.', '8', '9', '2', '6', '1', '7', '4', '.'],
                           ['4', '.', '.', '.', '.', '.', '.', '5', '1'],
                           ['8', '1', '3', '4', '5', '6', '.', '.', '.'],
                           ['2', '5', '7', '1', '.', '.', '4', '3', '6'],
                           ['9', '6', '4', '.', '1', '5', '3', '2', '8'],
                           ['7', '3', '.', '.', '8', '2', '5', '9', '4'],
                           ['.', '2', '.', '9', '3', '4', '1', '6', '7']]
        expected_board_string = "1..549683\n" + \
                                "645..32.9\n" + \
                                ".8926174.\n" + \
                                "4......51\n" + \
                                "813456...\n" + \
                                "2571..436\n" + \
                                "964.15328\n" + \
                                "73..82594\n" + \
                                ".2.934167\n"
        current_board_string = self.test_generator.get_board_format_to_string(board_to_format)
        self.assertEquals(expected_board_string, current_board_string)

    def test_generate_sudoku_pattern_by_complexity_returns_solvable_sudoku_easy(self):
        self.test_generator.generate_sudoku_pattern_by_complexity(20, 25, '.')
        raw_sudoku_string = self.test_generator.get_board_format_to_string(self.test_generator.sudoku_pattern)
        sudoku_test_solve = BacktrakingAlgorithm(raw_sudoku_string, ".")
        self.assertTrue(sudoku_test_solve.solve_sudoku())

    def test_generate_sudoku_pattern_by_complexity_returns_solvable_sudoku_medium(self):
        self.test_generator.generate_sudoku_pattern_by_complexity(30, 40, '.')
        raw_sudoku_string = self.test_generator.get_board_format_to_string(self.test_generator.sudoku_pattern)
        sudoku_test_solve = BacktrakingAlgorithm(raw_sudoku_string, ".")
        self.assertTrue(sudoku_test_solve.solve_sudoku())

    def test_generate_sudoku_pattern_by_complexity_returns_solvable_sudoku_hard(self):
        self.test_generator.generate_sudoku_pattern_by_complexity(40, 50, '.')
        raw_sudoku_string = self.test_generator.get_board_format_to_string(self.test_generator.sudoku_pattern)
        sudoku_test_solve = BacktrakingAlgorithm(raw_sudoku_string, ".")
        self.assertTrue(sudoku_test_solve.solve_sudoku())

    def test_give_hint_at_returns_the_value_6_at_position_3_2(self):
        self.test_generator.board_list =[[6, 5, 7, 1, 8, 4, 3, 2, 9],
                                         [9, 2, 8, 7, 3, 6, 4, 1, 5],
                                         [4, 3, 1, 2, 9, 5, 7, 6, 8],
                                         [2, 8, 6, 3, 5, 9, 1, 4, 7],
                                         [7, 9, 5, 4, 2, 1, 8, 3, 6],
                                         [3, 1, 4, 8, 6, 7, 5, 9, 2],
                                         [8, 7, 9, 6, 1, 3, 2, 5, 4],
                                         [1, 6, 2, 5, 4, 8, 9, 7, 3],
                                         [5, 4, 3, 9, 7, 2, 6, 8, 1]]
        self.test_generator.sudoku_pattern = [['6', '.', '7', '.', '8', '4', '3', '2', '9'],
                                              ['.', '2', '8', '7', '3', '.', '4', '1', '5'],
                                              ['4', '3', '1', '2', '.', '.', '.', '6', '8'],
                                              ['2', '8', '.', '.', '5', '9', '1', '4', '7'],
                                              ['7', '9', '5', '4', '2', '.', '8', '3', '.'],
                                              ['3', '1', '4', '8', '6', '.', '5', '9', '2'],
                                              ['8', '.', '9', '.', '1', '3', '2', '5', '4'],
                                              ['1', '6', '2', '5', '.', '8', '9', '7', '3'],
                                              ['.', '.', '3', '9', '7', '2', '6', '8', '1']]

        expected_value_hint = 6
        self.assertEquals(expected_value_hint,self.test_generator.give_hint_at(3,2))
Example #9
0
 def setUp(self):
     self.minimum_limit = 30
     self.maximum_limit = 40
     self.generator = SudokuGenerator(self.minimum_limit, self.maximum_limit)
     self.generator.fill_board()
     self.generator.fill_puzzle_with_dots()