From a9a01d3fd4fa544ce87ef9e12f7e546afc349888 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 10 Oct 2017 11:59:29 -0700 Subject: [PATCH] Fix solved property --- sudoku.py | 9 +++------ test.py | 5 +++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sudoku.py b/sudoku.py index da25383..8fa2937 100644 --- a/sudoku.py +++ b/sudoku.py @@ -91,12 +91,9 @@ class Sudoku: @property def solved(self): - expected = set(range(self.size)) - return all([ - all(expected == set(row) for row in self.rows), - all(expected == set(col) for col in self.columns), - all(expected == set(sqr) for sqr in self.squares) - ]) + expected = set(range(1, self.size + 1)) + all_groups = itertools.chain(self.rows, self.columns, self.squares) + return all(expected == set(g) for g in all_groups) def _apply_index_ranges(self, ranges): return ((self._board[i] for i in r) for r in ranges) diff --git a/test.py b/test.py index 0ee539b..a9695dc 100644 --- a/test.py +++ b/test.py @@ -83,3 +83,8 @@ class Sudoku4BasicTests(Sudoku4TestCase): class Sudoku4SolvedTests(Sudoku4TestCase): def test_that_an_empty_board_is_not_solved(self): self.assertFalse(self.board.solved) + + def test_simple_solution_is_solved(self): + board = (int(i) for i in '1234341221434321') + self.board = sudoku.Sudoku(4, board) + self.assertTrue(self.board.solved)