Fix solved property
This commit is contained in:
parent
cf43b02aa9
commit
a9a01d3fd4
2 changed files with 8 additions and 6 deletions
|
@ -91,12 +91,9 @@ class Sudoku:
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def solved(self):
|
def solved(self):
|
||||||
expected = set(range(self.size))
|
expected = set(range(1, self.size + 1))
|
||||||
return all([
|
all_groups = itertools.chain(self.rows, self.columns, self.squares)
|
||||||
all(expected == set(row) for row in self.rows),
|
return all(expected == set(g) for g in all_groups)
|
||||||
all(expected == set(col) for col in self.columns),
|
|
||||||
all(expected == set(sqr) for sqr in self.squares)
|
|
||||||
])
|
|
||||||
|
|
||||||
def _apply_index_ranges(self, ranges):
|
def _apply_index_ranges(self, ranges):
|
||||||
return ((self._board[i] for i in r) for r in ranges)
|
return ((self._board[i] for i in r) for r in ranges)
|
||||||
|
|
5
test.py
5
test.py
|
@ -83,3 +83,8 @@ class Sudoku4BasicTests(Sudoku4TestCase):
|
||||||
class Sudoku4SolvedTests(Sudoku4TestCase):
|
class Sudoku4SolvedTests(Sudoku4TestCase):
|
||||||
def test_that_an_empty_board_is_not_solved(self):
|
def test_that_an_empty_board_is_not_solved(self):
|
||||||
self.assertFalse(self.board.solved)
|
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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue