Exemple #1
0
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 )
Exemple #2
0
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))) )