def test_van_der_waerden_not_solvable(self):
        # Given
        j, k, n = 3, 3, 9
        s = MiniSATSolver()
        clauses = van_der_waerden(j, k, n)
        for clause in clauses:
            s.add_clause(clause)
        s._setup_assignments()

        # Then
        with self.assertRaises(SatisfiabilityError):
            s.search()
Example #2
0
    def test_van_der_waerden_not_solvable(self):
        # Given
        j, k, n = 3, 3, 9
        s = MiniSATSolver()
        clauses = van_der_waerden(j, k, n)
        for clause in clauses:
            s.add_clause(clause)
        s._setup_assignments()

        # When
        solution = s.search()

        # Then
        self.assertFalse(solution)
Example #3
0
    def test_van_der_waerden_solvable(self):
        # Given
        j, k, n = 3, 3, 8
        s = MiniSATSolver()
        clauses = van_der_waerden(j, k, n)
        for clause in clauses:
            s.add_clause(clause)
        s._setup_assignments()

        # When
        solution = s.search()

        # Then
        self.assertTrue(check_solution(s.clauses, solution),
                        msg='{} does not satisfy SAT problem'.format(solution))