class TestElimination(unittest.TestCase): """ Verify constraint propagation. """ def setUp(self): self.board = Board("board.txt") self.board.set_color(0, 2, 'R') self.this_cell = self.board.get(0, 2) def test_set_color(self): self.assertEquals('R', self.this_cell.proposal) def test_set_color_failures(self): with self.assertRaisesRegexp(Exception, "already eliminated"): self.board.set_color(0, 2, 'R') with self.assertRaisesRegexp(Exception, "already eliminated"): self.board.set_color(0, 2, 'G') def test_row_elimination(self): for c in self.board.iter_row(0): self.assertFalse( 'R' in c.possibilities ) def test_column_elimination(self): for c in self.board.iter_col(2): self.assertFalse( 'R' in c.possibilities ) def test_shared_height_elimination(self): for c, _row, _col in self.board.iter(): if c.height == self.this_cell.height: self.assertFalse( 'R' in c.possibilities )
class TestBoard(unittest.TestCase): """ Verify board utilities. """ def setUp(self): self.board = Board("board.txt") def test_iter_row(self): self.assertEquals( 6, len(list(self.board.iter_row(0))) ) def test_iter_col(self): self.assertEquals( 6, len(list(self.board.iter_col(0))) )