aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-query-viatra/src/test
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-02-24 20:21:15 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-02-24 23:29:49 +0100
commitf8a3c575e400259a4985233c07b7a50e5d4d82c5 (patch)
treef5975a19fcce28eba17b5af8adde5a37ddba83c6 /subprojects/store-query-viatra/src/test
parentrefactor: split query and partial from store (diff)
downloadrefinery-f8a3c575e400259a4985233c07b7a50e5d4d82c5.tar.gz
refinery-f8a3c575e400259a4985233c07b7a50e5d4d82c5.tar.zst
refinery-f8a3c575e400259a4985233c07b7a50e5d4d82c5.zip
feat: Dnf reduction and structural equality
Diffstat (limited to 'subprojects/store-query-viatra/src/test')
-rw-r--r--subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java
index 6a3a62e3..54ae70c3 100644
--- a/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java
+++ b/subprojects/store-query-viatra/src/test/java/tools/refinery/store/query/viatra/QueryTest.java
@@ -17,6 +17,7 @@ import java.util.Set;
17import java.util.stream.Stream; 17import java.util.stream.Stream;
18 18
19import static org.junit.jupiter.api.Assertions.assertEquals; 19import static org.junit.jupiter.api.Assertions.assertEquals;
20import static org.junit.jupiter.api.Assertions.assertThrows;
20import static tools.refinery.store.query.literal.Literals.not; 21import static tools.refinery.store.query.literal.Literals.not;
21 22
22class QueryTest { 23class QueryTest {
@@ -669,6 +670,45 @@ class QueryTest {
669 assertEquals(3, predicateResultSet.countResults()); 670 assertEquals(3, predicateResultSet.countResults());
670 } 671 }
671 672
673 @Test
674 void alwaysFalseTest() {
675 var person = new Symbol<>("Person", 1, Boolean.class, false);
676
677 var p1 = new Variable("p1");
678 var predicate = Dnf.builder("AlwaysFalse").parameters(p1).build();
679
680 var store = ModelStore.builder()
681 .symbols(person)
682 .with(ViatraModelQuery.ADAPTER)
683 .queries(predicate)
684 .build();
685
686 var model = store.createEmptyModel();
687 var personInterpretation = model.getInterpretation(person);
688 var queryEngine = model.getAdapter(ModelQuery.ADAPTER);
689 var predicateResultSet = queryEngine.getResultSet(predicate);
690
691 personInterpretation.put(Tuple.of(0), true);
692 personInterpretation.put(Tuple.of(1), true);
693 personInterpretation.put(Tuple.of(2), true);
694
695 queryEngine.flushChanges();
696 assertEquals(0, predicateResultSet.countResults());
697 }
698
699 @Test
700 void alwaysTrueTest() {
701 var person = new Symbol<>("Person", 1, Boolean.class, false);
702
703 var p1 = new Variable("p1");
704 var predicate = Dnf.builder("AlwaysTrue").parameters(p1).clause().build();
705
706 var storeBuilder = ModelStore.builder().symbols(person);
707 var queryBuilder = storeBuilder.with(ViatraModelQuery.ADAPTER);
708
709 assertThrows(IllegalArgumentException.class, () -> queryBuilder.queries(predicate));
710 }
711
672 static void compareMatchSets(Stream<TupleLike> matchSet, Set<Tuple> expected) { 712 static void compareMatchSets(Stream<TupleLike> matchSet, Set<Tuple> expected) {
673 Set<Tuple> translatedMatchSet = new HashSet<>(); 713 Set<Tuple> translatedMatchSet = new HashSet<>();
674 var iterator = matchSet.iterator(); 714 var iterator = matchSet.iterator();