From 8eb1b7a14972e52018a1bb69a53f2878e96b581e Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Mon, 7 Aug 2023 02:45:57 +0200 Subject: StateCoderBuilder improvement with individuals, and customizable calculators. --- .../store/statecoding/StateCoderBuildTest.java | 51 ++++++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) (limited to 'subprojects/store/src/test/java') 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 { Symbol friend = new Symbol<>("friend", 2, Boolean.class, false); @Test - void simpleStateCoderTest() { + void simpleStateCoderBuildTest() { var store = ModelStore.builder() .symbols(person, age, friend) - .with(StateCoderAdapter - .builder()) + .with(StateCoderAdapter.builder()) .build(); var model = store.createEmptyModel(); @@ -33,6 +32,7 @@ class StateCoderBuildTest { var personI = model.getInterpretation(person); var friendI = model.getInterpretation(friend); var ageI = model.getInterpretation(age); + fill(personI, friendI, ageI); stateCoder.calculateStateCode(); @@ -68,6 +68,51 @@ class StateCoderBuildTest { assertEquals(code,stateCoder.calculateStateCode().modelCode()); } + @Test + void notIndividualTest() { + var store = ModelStore.builder() + .symbols(friend) + .with(StateCoderAdapter.builder()) + .build(); + + var model = store.createEmptyModel(); + var stateCoder = model.getAdapter(StateCoderAdapter.class); + + var friendI = model.getInterpretation(friend); + + friendI.put(Tuple.of(1,2),true); + int code1 = stateCoder.calculateModelCode(); + + friendI.put(Tuple.of(1,2),false); + friendI.put(Tuple.of(2,1),true); + int code2 = stateCoder.calculateModelCode(); + + assertEquals(code1,code2); + } + + @Test + void individualTest() { + var store = ModelStore.builder() + .symbols(friend) + .with(StateCoderAdapter.builder() + .individual(Tuple.of(1))) + .build(); + + var model = store.createEmptyModel(); + var stateCoder = model.getAdapter(StateCoderAdapter.class); + + var friendI = model.getInterpretation(friend); + + friendI.put(Tuple.of(1,2),true); + int code1 = stateCoder.calculateModelCode(); + + friendI.put(Tuple.of(1,2),false); + friendI.put(Tuple.of(2,1),true); + int code2 = stateCoder.calculateModelCode(); + + assertNotEquals(code1,code2); + } + private static void fill(Interpretation personI, Interpretation friendI, Interpretation ageI) { personI.put(Tuple.of(1), true); personI.put(Tuple.of(2), true); -- cgit v1.2.3-70-g09d2