Fix solved property

This commit is contained in:
Eryn Wells 2017-10-10 11:59:29 -07:00
parent cf43b02aa9
commit a9a01d3fd4
2 changed files with 8 additions and 6 deletions

View file

@ -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)

View file

@ -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)