Exemplo n.º 1
0
    def testInitialization(self):
        i = '3 2\n'
        i += '1 1 1\n'
        i += '1 0 1\n'
        i += '1 1 1\n'
        i += '0 + 3\n'
        i += '1 + 15\n'

        s = Solver()
        s.initialize(i)

        cage = s.cages[0]
        self.assertEqual(len(cage.cells), 1)
        self.assertIn([1, 1], cage.cells)
        self.assertEqual(cage.op, Op.ADDITION)
        self.assertEqual(cage.value, 3)

        cage = s.cages[1]
        self.assertEqual(len(cage.cells), 8)
        self.assertIn([0, 0], cage.cells)
        self.assertIn([0, 1], cage.cells)
        self.assertIn([0, 2], cage.cells)
        self.assertIn([1, 0], cage.cells)
        self.assertIn([1, 2], cage.cells)
        self.assertIn([2, 0], cage.cells)
        self.assertIn([2, 1], cage.cells)
        self.assertIn([2, 2], cage.cells)
        self.assertEqual(cage.op, Op.ADDITION)
        self.assertEqual(cage.value, 15)
Exemplo n.º 2
0
    def testInvalidOperations(self):
        i = '3 2\n'
        i += '1 1 1\n'
        i += '1 0 1\n'
        i += '1 1 1\n'
        i += '0 ^ 3\n'
        i += '1 + 15\n'

        try:
            s = Solver()
            s.initialize(i)
            self.assertTrue(False, 'Unknown operation')
        except InputError:
            pass
Exemplo n.º 3
0
    def testAllCageCellsMustBeAttached(self):
        i = '4 2\n'
        i += '0 0 0 1\n'
        i += '1 1 1 0\n'
        i += '1 1 1 1\n'
        i += '1 1 1 1\n'
        i += '0 + 7\n'
        i += '1 + 33\n'

        try:
            s = Solver()
            s.initialize(i)
            self.assertTrue(False, 'Cage cells are not attached')
        except InputError:
            pass
Exemplo n.º 4
0
    def testCagesMustMatchCageCount(self):
        i = '4 3\n'
        i += '0 0 0 0\n'
        i += '1 1 1 1\n'
        i += '1 1 1 1\n'
        i += '1 1 1 1\n'
        i += '0 + 10\n'
        i += '1 + 30\n'

        try:
            s = Solver()
            s.initialize(i)
            self.assertTrue(False, 'Cage count does not match')
        except InputError:
            pass
Exemplo n.º 5
0
    def testBoardMustMatchBoardSize(self):
        i = '5 2\n'
        i += '0 0 0 0\n'
        i += '1 1 1 1\n'
        i += '1 1 1 1\n'
        i += '1 1 1 1\n'
        i += '0 + 10\n'
        i += '1 + 30\n'

        try:
            s = Solver()
            s.initialize(i)
            self.assertTrue(False, 'Board size does not match')
        except InputError:
            pass
Exemplo n.º 6
0
    def setUp(self):
        i = '4 6\n'
        i += '0 0 0 1\n'
        i += '2 2 3 1\n'
        i += '4 2 1 1\n'
        i += '4 2 5 5\n'
        i += '0 * 24\n'
        i += '1 + 10\n'
        i += '2 * 24\n'
        i += '3 + 1\n'
        i += '4 - 1\n'
        i += '5 / 4\n'
        '''
        Solution:
        
        '''

        s = Solver()
        s.initialize(i)

        self.boardSize = s.boardSize
        self.cages = s.cages