diff options
author | OszkarSemerath <semerath@mit.bme.hu> | 2023-08-07 02:45:57 +0200 |
---|---|---|
committer | OszkarSemerath <semerath@mit.bme.hu> | 2023-08-07 02:45:57 +0200 |
commit | 8eb1b7a14972e52018a1bb69a53f2878e96b581e (patch) | |
tree | ddab1d27e8354d5d2c847c3473303a1f2bf549fa /subprojects/store/src/test/java | |
parent | Merge pull request #34 from OszkarSemerath/datastructure (diff) | |
download | refinery-8eb1b7a14972e52018a1bb69a53f2878e96b581e.tar.gz refinery-8eb1b7a14972e52018a1bb69a53f2878e96b581e.tar.zst refinery-8eb1b7a14972e52018a1bb69a53f2878e96b581e.zip |
StateCoderBuilder improvement with individuals, and customizable calculators.
Diffstat (limited to 'subprojects/store/src/test/java')
-rw-r--r-- | subprojects/store/src/test/java/tools/refinery/store/statecoding/StateCoderBuildTest.java | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/subprojects/store/src/test/java/tools/refinery/store/statecoding/StateCoderBuildTest.java b/subprojects/store/src/test/java/tools/refinery/store/statecoding/StateCoderBuildTest.java index b0b80af7..a4e953ea 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/statecoding/StateCoderBuildTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/statecoding/StateCoderBuildTest.java | |||
@@ -19,11 +19,10 @@ class StateCoderBuildTest { | |||
19 | Symbol<Boolean> friend = new Symbol<>("friend", 2, Boolean.class, false); | 19 | Symbol<Boolean> friend = new Symbol<>("friend", 2, Boolean.class, false); |
20 | 20 | ||
21 | @Test | 21 | @Test |
22 | void simpleStateCoderTest() { | 22 | void simpleStateCoderBuildTest() { |
23 | var store = ModelStore.builder() | 23 | var store = ModelStore.builder() |
24 | .symbols(person, age, friend) | 24 | .symbols(person, age, friend) |
25 | .with(StateCoderAdapter | 25 | .with(StateCoderAdapter.builder()) |
26 | .builder()) | ||
27 | .build(); | 26 | .build(); |
28 | 27 | ||
29 | var model = store.createEmptyModel(); | 28 | var model = store.createEmptyModel(); |
@@ -33,6 +32,7 @@ class StateCoderBuildTest { | |||
33 | var personI = model.getInterpretation(person); | 32 | var personI = model.getInterpretation(person); |
34 | var friendI = model.getInterpretation(friend); | 33 | var friendI = model.getInterpretation(friend); |
35 | var ageI = model.getInterpretation(age); | 34 | var ageI = model.getInterpretation(age); |
35 | |||
36 | fill(personI, friendI, ageI); | 36 | fill(personI, friendI, ageI); |
37 | 37 | ||
38 | stateCoder.calculateStateCode(); | 38 | stateCoder.calculateStateCode(); |
@@ -68,6 +68,51 @@ class StateCoderBuildTest { | |||
68 | assertEquals(code,stateCoder.calculateStateCode().modelCode()); | 68 | assertEquals(code,stateCoder.calculateStateCode().modelCode()); |
69 | } | 69 | } |
70 | 70 | ||
71 | @Test | ||
72 | void notIndividualTest() { | ||
73 | var store = ModelStore.builder() | ||
74 | .symbols(friend) | ||
75 | .with(StateCoderAdapter.builder()) | ||
76 | .build(); | ||
77 | |||
78 | var model = store.createEmptyModel(); | ||
79 | var stateCoder = model.getAdapter(StateCoderAdapter.class); | ||
80 | |||
81 | var friendI = model.getInterpretation(friend); | ||
82 | |||
83 | friendI.put(Tuple.of(1,2),true); | ||
84 | int code1 = stateCoder.calculateModelCode(); | ||
85 | |||
86 | friendI.put(Tuple.of(1,2),false); | ||
87 | friendI.put(Tuple.of(2,1),true); | ||
88 | int code2 = stateCoder.calculateModelCode(); | ||
89 | |||
90 | assertEquals(code1,code2); | ||
91 | } | ||
92 | |||
93 | @Test | ||
94 | void individualTest() { | ||
95 | var store = ModelStore.builder() | ||
96 | .symbols(friend) | ||
97 | .with(StateCoderAdapter.builder() | ||
98 | .individual(Tuple.of(1))) | ||
99 | .build(); | ||
100 | |||
101 | var model = store.createEmptyModel(); | ||
102 | var stateCoder = model.getAdapter(StateCoderAdapter.class); | ||
103 | |||
104 | var friendI = model.getInterpretation(friend); | ||
105 | |||
106 | friendI.put(Tuple.of(1,2),true); | ||
107 | int code1 = stateCoder.calculateModelCode(); | ||
108 | |||
109 | friendI.put(Tuple.of(1,2),false); | ||
110 | friendI.put(Tuple.of(2,1),true); | ||
111 | int code2 = stateCoder.calculateModelCode(); | ||
112 | |||
113 | assertNotEquals(code1,code2); | ||
114 | } | ||
115 | |||
71 | private static void fill(Interpretation<Boolean> personI, Interpretation<Boolean> friendI, Interpretation<Integer> ageI) { | 116 | private static void fill(Interpretation<Boolean> personI, Interpretation<Boolean> friendI, Interpretation<Integer> ageI) { |
72 | personI.put(Tuple.of(1), true); | 117 | personI.put(Tuple.of(1), true); |
73 | personI.put(Tuple.of(2), true); | 118 | personI.put(Tuple.of(2), true); |