package org.drools.chance.kbase.fuzzy; import org.drools.chance.Chance; import org.drools.chance.common.ChanceStrategyFactory; import org.drools.chance.rule.constraint.core.connectives.factories.fuzzy.linguistic.FuzzyConnectiveFactory; import org.drools.chance.kbase.AbstractChanceTest; import org.drools.factmodel.traits.TraitFactory; import org.drools.runtime.StatefulKnowledgeSession; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import java.util.Map; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.fail; public class FuzzyKBTest extends AbstractChanceTest { @BeforeClass public static void setFactories() { Chance.initialize(); ChanceStrategyFactory.setDefaultFactory( new FuzzyConnectiveFactory() ); } @Test public void testFuzzyIs() { StatefulKnowledgeSession kSession = initBasicChanceTest( "org/drools/chance/fuzzy/testFuzzyIs.drl" ); Map map = (Map) kSession.getGlobal( MAP ); assertEquals( 2, map.size() ); assertTrue( map.containsKey( "X" ) ); assertTrue( map.containsKey( "Y" ) ); assertEquals( 0.65, (Double) map.get( "X" ), 1e-6 ); assertEquals( 0.65, (Double) map.get( "Y" ), 1e-6 ); } @Test public void testFuzzyFacts() { StatefulKnowledgeSession kSession = initBasicChanceTest( "org/drools/chance/fuzzy/testFuzzyFacts.drl" ); Map map = (Map) kSession.getGlobal( MAP ); assertEquals( 2, map.size() ); assertTrue( map.containsKey( "X" ) ); assertTrue( map.containsKey( "Y" ) ); assertEquals( 0.15, (Double) map.get( "X" ), 1e-6 ); assertEquals( 0.5, (Double) map.get( "Y" ), 1e-6 ); } @Test public void testFuzzyPattern() { StatefulKnowledgeSession kSession = initBasicChanceTest( "org/drools/chance/fuzzy/testFuzzyPattern.drl" ); Map map = (Map) kSession.getGlobal( MAP ); assertEquals( 3, map.size() ); assertTrue( map.containsKey( "X" ) ); assertTrue( map.containsKey( "Y" ) ); assertTrue( map.containsKey( "Z" ) ); assertEquals( 0.5, (Double) map.get( "X" ), 1e-6 ); assertEquals( 0.5, (Double) map.get( "Y" ), 1e-6 ); assertEquals( 0.35, (Double) map.get( "Z" ), 1e-6 ); } }