use of org.drools.traits.core.factmodel.HierarchyEncoder in project drools by kiegroup.
the class HierarchyTest method testHierEncoderBipartiteInheritance.
@Test
public void testHierEncoderBipartiteInheritance() {
HierarchyEncoder encoder = new HierarchyEncoderImpl();
encoder.encode("R", Collections.EMPTY_LIST);
encoder.encode("A1", Arrays.asList("R"));
encoder.encode("A2", Arrays.asList("R"));
encoder.encode("A3", Arrays.asList("R"));
encoder.encode("B1", Arrays.asList("R"));
encoder.encode("B2", Arrays.asList("R"));
encoder.encode("B3", Arrays.asList("R"));
encoder.encode("B4", Arrays.asList("B1", "B2", "B3"));
encoder.encode("B5", Arrays.asList("B1", "B2", "B3"));
encoder.encode("B6", Arrays.asList("B1", "B2", "B3"));
System.out.println(encoder);
assertEquals(parseBitSet("0"), encoder.getCode("R"));
assertEquals(parseBitSet("1"), encoder.getCode("A1"));
assertEquals(parseBitSet("10"), encoder.getCode("A2"));
assertEquals(parseBitSet("100"), encoder.getCode("A3"));
assertEquals(parseBitSet("1000"), encoder.getCode("B1"));
assertEquals(parseBitSet("10000"), encoder.getCode("B2"));
assertEquals(parseBitSet("100000"), encoder.getCode("B3"));
assertEquals(parseBitSet("10111000"), encoder.getCode("B4"));
assertEquals(parseBitSet("1111000"), encoder.getCode("B5"));
assertEquals(parseBitSet("100111000"), encoder.getCode("B6"));
}
use of org.drools.traits.core.factmodel.HierarchyEncoder in project drools by kiegroup.
the class HierarchyTest method testHierEncoderBipartiteStarInheritanceDiffOrder.
@Test
public void testHierEncoderBipartiteStarInheritanceDiffOrder() {
HierarchyEncoder encoder = new HierarchyEncoderImpl();
encoder.encode("R", Collections.EMPTY_LIST);
encoder.encode("A1", Arrays.asList("R"));
encoder.encode("A2", Arrays.asList("R"));
encoder.encode("A3", Arrays.asList("R"));
encoder.encode("A4", Arrays.asList("A1", "A2", "A3"));
encoder.encode("A5", Arrays.asList("A4"));
encoder.encode("A6", Arrays.asList("A4"));
encoder.encode("A7", Arrays.asList("A4"));
encoder.encode("B1", Arrays.asList("R"));
encoder.encode("B2", Arrays.asList("R"));
encoder.encode("B3", Arrays.asList("R"));
encoder.encode("B4", Arrays.asList("B1", "B2"));
encoder.encode("B5", Arrays.asList("B1", "B3"));
encoder.encode("B6", Arrays.asList("B2", "B3"));
encoder.encode("B7", Arrays.asList("B4", "B5", "B6"));
System.out.println(encoder);
assertEquals(parseBitSet("0"), encoder.getCode("R"));
assertEquals(parseBitSet("1"), encoder.getCode("A1"));
assertEquals(parseBitSet("10"), encoder.getCode("A2"));
assertEquals(parseBitSet("100"), encoder.getCode("A3"));
assertEquals(parseBitSet("111"), encoder.getCode("A4"));
assertEquals(parseBitSet("1111"), encoder.getCode("A5"));
assertEquals(parseBitSet("10111"), encoder.getCode("A6"));
assertEquals(parseBitSet("100111"), encoder.getCode("A7"));
assertEquals(parseBitSet("1000000"), encoder.getCode("B1"));
assertEquals(parseBitSet("10000000"), encoder.getCode("B2"));
assertEquals(parseBitSet("100000000"), encoder.getCode("B3"));
assertEquals(parseBitSet("011000000"), encoder.getCode("B4"));
assertEquals(parseBitSet("101000000"), encoder.getCode("B5"));
assertEquals(parseBitSet("110000000"), encoder.getCode("B6"));
assertEquals(parseBitSet("111000000"), encoder.getCode("B7"));
}
use of org.drools.traits.core.factmodel.HierarchyEncoder in project drools by kiegroup.
the class HierarchyTest method testHierEncoderBipartiteInheritanceDiffOrder.
@Test
public void testHierEncoderBipartiteInheritanceDiffOrder() {
HierarchyEncoder encoder = new HierarchyEncoderImpl();
encoder.encode("R", Collections.EMPTY_LIST);
encoder.encode("B1", Arrays.asList("R"));
encoder.encode("B2", Arrays.asList("R"));
encoder.encode("B3", Arrays.asList("R"));
encoder.encode("B4", Arrays.asList("B1", "B2", "B3"));
encoder.encode("B5", Arrays.asList("B1", "B2", "B3"));
encoder.encode("B6", Arrays.asList("B1", "B2", "B3"));
encoder.encode("A1", Arrays.asList("R"));
encoder.encode("A2", Arrays.asList("R"));
encoder.encode("A3", Arrays.asList("R"));
System.out.println(encoder);
assertEquals(parseBitSet("0"), encoder.getCode("R"));
assertEquals(parseBitSet("1"), encoder.getCode("B1"));
assertEquals(parseBitSet("10"), encoder.getCode("B2"));
assertEquals(parseBitSet("100"), encoder.getCode("B3"));
assertEquals(parseBitSet("10111"), encoder.getCode("B4"));
assertEquals(parseBitSet("1111"), encoder.getCode("B5"));
assertEquals(parseBitSet("100111"), encoder.getCode("B6"));
assertEquals(parseBitSet("1000000"), encoder.getCode("A1"));
assertEquals(parseBitSet("10000000"), encoder.getCode("A2"));
assertEquals(parseBitSet("100000000"), encoder.getCode("A3"));
}
use of org.drools.traits.core.factmodel.HierarchyEncoder in project drools by kiegroup.
the class HierarchyTest method testSquare.
@Test
public void testSquare() {
HierarchyEncoder encoder = new HierarchyEncoderImpl();
encoder.encode("T", Collections.EMPTY_LIST);
encoder.encode("A", Arrays.asList("T"));
encoder.encode("B", Arrays.asList("T"));
encoder.encode("C", Arrays.asList("A", "B"));
encoder.encode("D", Arrays.asList("A", "B"));
System.out.println(encoder);
assertEquals(parseBitSet("0"), encoder.getCode("T"));
assertEquals(parseBitSet("1"), encoder.getCode("A"));
assertEquals(parseBitSet("10"), encoder.getCode("B"));
assertEquals(parseBitSet("111"), encoder.getCode("D"));
assertEquals(parseBitSet("1011"), encoder.getCode("C"));
}
use of org.drools.traits.core.factmodel.HierarchyEncoder in project drools by kiegroup.
the class HierarchyTest method testConflictArising2.
@Test
public void testConflictArising2() {
HierarchyEncoder encoder = new HierarchyEncoderImpl();
encoder.encode("A", Collections.EMPTY_LIST);
encoder.encode("B", Arrays.asList("A"));
encoder.encode("C", Arrays.asList("A"));
encoder.encode("D", Arrays.asList("B"));
encoder.encode("E", Arrays.asList("B"));
encoder.encode("F", Arrays.asList("C"));
encoder.encode("G", Arrays.asList("C"));
encoder.encode("H", Arrays.asList("E"));
encoder.encode("J", Arrays.asList("F"));
encoder.encode("K", Arrays.asList("J"));
System.out.println(encoder);
encoder.encode("I", Arrays.asList("E", "F"));
System.out.println(encoder);
checkHier(encoder, 'K');
}
Aggregations