diff options
Diffstat (limited to 'subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTester.java')
-rw-r--r-- | subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTester.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTester.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTester.java new file mode 100644 index 00000000..647bd782 --- /dev/null +++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTester.java | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | ||
3 | * | ||
4 | * SPDX-License-Identifier: EPL-2.0 | ||
5 | */ | ||
6 | package tools.refinery.store.reasoning.translator.typehierarchy; | ||
7 | |||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | ||
9 | |||
10 | import static org.hamcrest.MatcherAssert.assertThat; | ||
11 | import static org.hamcrest.Matchers.*; | ||
12 | import static org.hamcrest.Matchers.is; | ||
13 | |||
14 | class TypeHierarchyTester { | ||
15 | private final TypeHierarchy sut; | ||
16 | |||
17 | public TypeHierarchyTester(TypeHierarchy sut) { | ||
18 | this.sut = sut; | ||
19 | } | ||
20 | |||
21 | public void assertAbstractType(PartialRelation partialRelation, PartialRelation... directSubtypes) { | ||
22 | assertPreservedType(partialRelation, true, false, directSubtypes); | ||
23 | } | ||
24 | |||
25 | public void assertVacuousType(PartialRelation partialRelation) { | ||
26 | assertPreservedType(partialRelation, true, true); | ||
27 | } | ||
28 | |||
29 | public void assertConcreteType(PartialRelation partialRelation, PartialRelation... directSubtypes) { | ||
30 | assertPreservedType(partialRelation, false, false, directSubtypes); | ||
31 | } | ||
32 | |||
33 | private void assertPreservedType(PartialRelation partialRelation, boolean isAbstract, boolean isVacuous, | ||
34 | PartialRelation... directSubtypes) { | ||
35 | var result = sut.getPreservedTypes().get(partialRelation); | ||
36 | assertThat(result, not(nullValue())); | ||
37 | assertThat(result.isAbstractType(), is(isAbstract)); | ||
38 | assertThat(result.isVacuous(), is(isVacuous)); | ||
39 | assertThat(result.getDirectSubtypes(), hasItems(directSubtypes)); | ||
40 | } | ||
41 | |||
42 | public void assertEliminatedType(PartialRelation partialRelation, PartialRelation replacement) { | ||
43 | var result = sut.getEliminatedTypes().get(partialRelation); | ||
44 | assertThat(result, not(nullValue())); | ||
45 | assertThat(result, is(replacement)); | ||
46 | } | ||
47 | |||
48 | public TypeAnalysisResult getPreservedType(PartialRelation partialRelation) { | ||
49 | return sut.getPreservedTypes().get(partialRelation); | ||
50 | } | ||
51 | |||
52 | public InferredType getInferredType(PartialRelation partialRelation) { | ||
53 | return getPreservedType(partialRelation).asInferredType(); | ||
54 | } | ||
55 | } | ||