From 3fabd4b42014c1cae66eced4b9534b084c08a098 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 8 Oct 2017 08:00:45 -0700 Subject: [PATCH] Rough, probably incomplete solved property --- sudoku.py | 9 +++++++++ test.py | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/sudoku.py b/sudoku.py index f664846..c97e071 100644 --- a/sudoku.py +++ b/sudoku.py @@ -66,6 +66,15 @@ class Sudoku: dim = self.dimension return (self.square(x, y) for y in range(dim) for x in range(dim)) + @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) + ]) + def square(self, x, y): dim = self.dimension if (x < 0 or x >= dim) or (y < 0 or y >= dim): diff --git a/test.py b/test.py index ab827b4..cfe6354 100644 --- a/test.py +++ b/test.py @@ -52,3 +52,7 @@ class Sudoku4BasicTests(Sudoku4TestCase): sq_list = list(sq) with self.subTest(sq=sq_list, ex=exsq): self.assertEqual(sq_list, exsq) + +class Sudoku4SolvedTests(Sudoku4TestCase): + def test_that_an_empty_board_is_not_solved(self): + self.assertFalse(self.board.solved)