diff options
author | 2023-12-06 23:52:07 +0100 | |
---|---|---|
committer | 2023-12-08 21:48:48 +0100 | |
commit | d40ec70132ebb324873cb8c3868eb65309f46f8c (patch) | |
tree | 31c9ca6e5454f61868b4123574b723b33ecc704e /subprojects/language-semantics/src/test | |
parent | chore: upgrade to Eclipse 2023-12 (diff) | |
download | refinery-d40ec70132ebb324873cb8c3868eb65309f46f8c.tar.gz refinery-d40ec70132ebb324873cb8c3868eb65309f46f8c.tar.zst refinery-d40ec70132ebb324873cb8c3868eb65309f46f8c.zip |
feat: state-based store for cross references
Efficiently store cross references even if default ref(*, *): false.
Uses propagation rules instead of view queries to reason about type constraints
and multiplicity.
Diffstat (limited to 'subprojects/language-semantics/src/test')
-rw-r--r-- | subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java index 2320de2c..61ce850f 100644 --- a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java +++ b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java | |||
@@ -276,6 +276,16 @@ class DecisionTreeTests { | |||
276 | assertThat(sut.getReducedValue(), is(TruthValue.TRUE)); | 276 | assertThat(sut.getReducedValue(), is(TruthValue.TRUE)); |
277 | } | 277 | } |
278 | 278 | ||
279 | @Test | ||
280 | void overwriteWildcardAllTest() { | ||
281 | var first = new DecisionTree(2, TruthValue.UNKNOWN); | ||
282 | first.mergeValue(Tuple.of(-1, -1), TruthValue.FALSE); | ||
283 | var second = new DecisionTree(2, null); | ||
284 | second.mergeValue(Tuple.of(1, -1), TruthValue.TRUE); | ||
285 | first.overwriteValues(second); | ||
286 | assertThat(first.majorityValue(), is(TruthValue.FALSE)); | ||
287 | } | ||
288 | |||
279 | private Map<Tuple, TruthValue> iterateAll(DecisionTree sut, TruthValue defaultValue, int nodeCount) { | 289 | private Map<Tuple, TruthValue> iterateAll(DecisionTree sut, TruthValue defaultValue, int nodeCount) { |
280 | var cursor = sut.getCursor(defaultValue, nodeCount); | 290 | var cursor = sut.getCursor(defaultValue, nodeCount); |
281 | var map = new LinkedHashMap<Tuple, TruthValue>(); | 291 | var map = new LinkedHashMap<Tuple, TruthValue>(); |