use of at.ac.tuwien.kr.alpha.common.AnswerSet in project Alpha by alpha-asp.
the class SolverTests method testUnsatisfiableProgram.
@Test
public void testUnsatisfiableProgram() throws IOException {
String testProgram = "p(a). p(b). :- p(a), p(b).";
ParsedProgram parsedProgram = parseVisit(testProgram);
Grounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
List<AnswerSet> answerSets = solver.collectList();
assertEquals(0, answerSets.size());
}
use of at.ac.tuwien.kr.alpha.common.AnswerSet in project Alpha by alpha-asp.
the class SolverTests method testProgramZeroArityPredicates.
@Test
public void testProgramZeroArityPredicates() throws Exception {
String testProgram = "a. p(X) :- b, r(X).";
ParsedProgram parsedProgram = parseVisit(testProgram);
Grounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
List<AnswerSet> answerSets = solver.collectList();
assertEquals(1, answerSets.size());
AnswerSet expected = new BasicAnswerSet.Builder().predicate("a").build();
assertEquals(expected, answerSets.get(0));
}
use of at.ac.tuwien.kr.alpha.common.AnswerSet in project Alpha by alpha-asp.
the class SolverTests method testFactsOnlyProgram.
@Test
public void testFactsOnlyProgram() throws IOException {
String testProgram = "p(a). p(b). foo(13). foo(16). q(a). q(c).";
ParsedProgram parsedProgram = parseVisit(testProgram);
Grounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
List<AnswerSet> answerSets = solver.collectList();
assertEquals(1, answerSets.size());
AnswerSet expected = new BasicAnswerSet.Builder().predicate("q").instance("a").instance("c").predicate("p").instance("a").instance("b").predicate("foo").instance("13").instance("16").build();
assertEquals(expected, answerSets.get(0));
}
use of at.ac.tuwien.kr.alpha.common.AnswerSet in project Alpha by alpha-asp.
the class SolverTests method sameVariableTwiceInAtomConstraint.
@Test
public void sameVariableTwiceInAtomConstraint() throws IOException {
String program = "p(a, a).\n" + ":- p(X, X).\n";
ParsedProgram parsedProgram = parseVisit(program);
NaiveGrounder grounder = new NaiveGrounder(parsedProgram);
Solver solver = getInstance(grounder);
Set<AnswerSet> answerSets = solver.collectSet();
assertTrue(answerSets.isEmpty());
}
use of at.ac.tuwien.kr.alpha.common.AnswerSet in project Alpha by alpha-asp.
the class ThreeColouringRandomGraphTest method testThreeColouring.
private void testThreeColouring(int nVertices, int nEdges) throws IOException {
ParsedProgram program = parseVisit("blue(N) :- v(N), not red(N), not green(N)." + "red(N) :- v(N), not blue(N), not green(N)." + "green(N) :- v(N), not red(N), not blue(N)." + ":- e(N1,N2), blue(N1), blue(N2)." + ":- e(N1,N2), red(N1), red(N2)." + ":- e(N1,N2), green(N1), green(N2).");
Collection<ParsedFact> vertices = createVertices(nVertices);
program.accumulate(new ParsedProgram(vertices));
Collection<ParsedFact> edges = createEdges(nVertices, nEdges);
program.accumulate(new ParsedProgram(edges));
program = maybeShuffle(program);
NaiveGrounder grounder = new NaiveGrounder(program);
Solver solver = getInstance(grounder);
Optional<AnswerSet> answerSet = solver.stream().findAny();
System.out.println(answerSet);
// TODO: check correctness of answer set
}
Aggregations