aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store/src/test
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2023-08-07 02:45:57 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2023-08-07 02:45:57 +0200
commit8eb1b7a14972e52018a1bb69a53f2878e96b581e (patch)
treeddab1d27e8354d5d2c847c3473303a1f2bf549fa /subprojects/store/src/test
parentMerge pull request #34 from OszkarSemerath/datastructure (diff)
downloadrefinery-8eb1b7a14972e52018a1bb69a53f2878e96b581e.tar.gz
refinery-8eb1b7a14972e52018a1bb69a53f2878e96b581e.tar.zst
refinery-8eb1b7a14972e52018a1bb69a53f2878e96b581e.zip
StateCoderBuilder improvement with individuals, and customizable calculators.
Diffstat (limited to 'subprojects/store/src/test')
-rw-r--r--subprojects/store/src/test/java/tools/refinery/store/statecoding/StateCoderBuildTest.java51
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);