aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-reasoning/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/store-reasoning/src/test')
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java
index 9e74cf02..87e28e80 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java
@@ -105,4 +105,49 @@ class MetamodelTest {
105 assertThat(enrolledStudentsInterpretation.get(Tuple.of(1, 3)), is(TruthValue.FALSE)); 105 assertThat(enrolledStudentsInterpretation.get(Tuple.of(1, 3)), is(TruthValue.FALSE));
106 assertThat(enrolledStudentsInterpretation.get(Tuple.of(1, 4)), is(TruthValue.UNKNOWN)); 106 assertThat(enrolledStudentsInterpretation.get(Tuple.of(1, 4)), is(TruthValue.UNKNOWN));
107 } 107 }
108
109 @Test
110 void simpleContainmentTest() {
111 var metamodel = Metamodel.builder()
112 .type(university)
113 .type(course)
114 .reference(courses, university, true, course)
115 .build();
116
117 var store = ModelStore.builder()
118 .with(ViatraModelQueryAdapter.builder())
119 .with(ReasoningAdapter.builder())
120 .with(new MultiObjectTranslator())
121 .with(new MetamodelTranslator(metamodel))
122 .build();
123
124 var seed = ModelSeed.builder(4)
125 .seed(MultiObjectTranslator.COUNT_SYMBOL, builder -> builder
126 .reducedValue(CardinalityIntervals.ONE)
127 .put(Tuple.of(0), CardinalityIntervals.SET)
128 .put(Tuple.of(1), CardinalityIntervals.SET))
129 .seed(ContainmentHierarchyTranslator.CONTAINED_SYMBOL, builder -> builder
130 .reducedValue(TruthValue.UNKNOWN))
131 .seed(ContainmentHierarchyTranslator.CONTAINS_SYMBOL, builder -> builder
132 .reducedValue(TruthValue.UNKNOWN))
133 .seed(university, builder -> builder
134 .reducedValue(TruthValue.UNKNOWN)
135 .put(Tuple.of(0), TruthValue.TRUE))
136 .seed(course, builder -> builder
137 .reducedValue(TruthValue.UNKNOWN)
138 .put(Tuple.of(1), TruthValue.TRUE))
139 .seed(courses, builder -> builder
140 .reducedValue(TruthValue.UNKNOWN)
141 .put(Tuple.of(2, 3), TruthValue.TRUE))
142 .build();
143
144 var model = store.getAdapter(ReasoningStoreAdapter.class).createInitialModel(seed);
145 var coursesInterpretation = model.getAdapter(ReasoningAdapter.class)
146 .getPartialInterpretation(Concreteness.PARTIAL, courses);
147
148 assertThat(coursesInterpretation.get(Tuple.of(0, 1)), is(TruthValue.UNKNOWN));
149 assertThat(coursesInterpretation.get(Tuple.of(0, 3)), is(TruthValue.FALSE));
150 assertThat(coursesInterpretation.get(Tuple.of(2, 1)), is(TruthValue.UNKNOWN));
151 assertThat(coursesInterpretation.get(Tuple.of(2, 3)), is(TruthValue.TRUE));
152 }
108} 153}