Ejemplo n.º 1
0
class SolverTestCase(TestCase):

    def setUp(self):
        self.solver = MySolver("A", "B")

    def test_quick_check_true(self):
        self.assertTrue(self.solver.quick_check(syndra_true))

    def test_quick_check_false(self):
        self.assertFalse(self.solver.quick_check(syndra_false))

    def test_quick_check_pushes_and_pops(self):
        self.assertTrue(self.solver.check())
        self.assertFalse(self.solver.quick_check(syndra_false))
        self.assertTrue(self.solver.check())

    def test_context(self):
        with self.solver.context():
            self.solver.add(syndra_false)
            self.assertFalse(self.solver.check())
        self.assertTrue(self.solver.check())

    def test_add(self):
        with self.solver.context():
            self.assertTrue(self.solver.check())
            self.solver.add(syndra_true)
            self.assertTrue(self.solver.check())
            self.solver.add(syndra_false)
            self.assertFalse(self.solver.check())

    def test_quick_check_valid_f_t(self):
        with self.solver.context():
            self.solver.add(syndra_false)
            self.assertTrue(self.solver.quick_check_valid(syndra_true))

    def test_quick_check_valid_f_f(self):
        with self.solver.context():
            self.solver.add(syndra_false)
            self.assertTrue(self.solver.quick_check_valid(syndra_false))

    def test_quick_check_valid_t_t(self):
        with self.solver.context():
            self.solver.add(syndra_true)
            self.assertTrue(self.solver.quick_check_valid(syndra_true))

    def test_quick_check_valid_t_f(self):
        with self.solver.context():
            self.solver.add(syndra_true)
            self.assertFalse(self.solver.quick_check_valid(syndra_false))

    def test_push_pop(self):
        self.assertTrue(self.solver.check())
        self.solver.push()
        self.assertTrue(self.solver.check())
        self.solver.add(syndra_false)
        self.assertFalse(self.solver.check())
        self.solver.pop()
        self.assertTrue(self.solver.check())