assertEquals( EqualityKey.STATED, fh1.getEqualityKey().getStatus()); assertEquals(EqualityKey.STATED, fh2.getEqualityKey().getStatus() ); assertEquals( 1, fh1.getEqualityKey().getBeliefSet().size() ); assertNull( fh2.getEqualityKey().getBeliefSet() ); InternalFactHandle jfh1 = tms.get( "f1" ).getLogicalFactHandle(); EqualityKey key = jfh1.getEqualityKey(); assertSame( fh1.getEqualityKey(), key ); assertNotSame( fh1, jfh1 ); assertEquals(2, key.size()); assertSame(jfh1, key.getLogicalFactHandle()); } finally { session.dispose();
EqualityKey key = new EqualityKey( ch1 ); assertSame( ch1, key.getFactHandle() ); assertEquals( 1, key.size() ); key.addFactHandle( ch2 ); assertEquals( 2, key.size() ); assertEquals( ch2, key.get( 1 ) ); key.removeFactHandle( ch1 ); assertSame( ch2, key.getFactHandle() ); assertEquals( 1, key.size() ); key.removeFactHandle( ch2 ); assertNull( key.getFactHandle() ); assertEquals( 0, key.size() ); key = new EqualityKey( ch2 ); key.addFactHandle( ch1 ); assertSame( ch2, key.getFactHandle() ); assertEquals( 2, key.size() ); assertEquals( ch1, key.get( 1 ) ); key.removeFactHandle( ch1 ); assertSame( ch2, key.getFactHandle() ); assertEquals( 1, key.size() ); key.removeFactHandle( ch2 );
private void checkStatus( EqualityKey key, int support, DefeasibilityStatus status ) { assertEquals( EqualityKey.JUSTIFIED, key.getStatus() ); BeliefSet set = key.getBeliefSet(); assertTrue( set instanceof DefeasibleBeliefSet ); DefeasibleBeliefSet dfs = ( DefeasibleBeliefSet ) set; assertEquals( support, dfs.size() ); assertEquals( status, dfs.getStatus() ); }
@Test(timeout = 10000 ) public void testDefeatOutcomePosNeg() { KieSession kSession = getSession( "org/drools/compiler/beliefsystem/defeasible/negDefeatPos.drl" ); ArrayList list = new ArrayList(); kSession.setGlobal( "list", list ); kSession.fireAllRules(); TruthMaintenanceSystem tms = ((NamedEntryPoint) kSession.getEntryPoint( "DEFAULT" )).getTruthMaintenanceSystem(); FactType Xtype = kSession.getKieBase().getFactType( "org.drools.defeasible", "X" ); ObjectHashMap keys = tms.getEqualityKeyMap(); Iterator iter = keys.iterator(); ObjectHashMap.ObjectEntry entry; while ( ( entry = ( ObjectHashMap.ObjectEntry) iter.next() ) != null ) { EqualityKey key = (EqualityKey) entry.getValue(); Class factClass = key.getFactHandle().getObject().getClass(); if ( factClass == Xtype.getFactClass() ) { checkStatus( key, 1, DefeasibilityStatus.DEFEASIBLY ); } else { fail( "Unrecognized object has been logically justified : " + factClass ); } } assertEquals( 2, kSession.getObjects().size() ); assertEquals( 1, getNegativeObjects(kSession).size() ); assertEquals( 1, list.size() ); assertTrue( list.contains( "-1" ) ); }
org.drools.core.util.Iterator it = equalityMap.iterator(); EqualityKey key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( new Person( "darth") ) ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 3, key.getBeliefSet().size() ); assertEquals( new Integer(1), ((Person)((JTMSBeliefSetImpl)key.getBeliefSet()).getFactHandle().getObject()).getNotInEqualTestObject() ); it = equalityMap.iterator(); key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( new Person( "darth") ) ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 2, key.getBeliefSet().size() ); assertEquals( new Integer(3), ((Person)((JTMSBeliefSetImpl)key.getBeliefSet()).getFactHandle().getObject()).getNotInEqualTestObject() ); it = equalityMap.iterator(); key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( new Person( "darth") ) ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 1, key.getBeliefSet().size() ); assertEquals( new Integer(2), ((Person)((JTMSBeliefSetImpl)key.getBeliefSet()).getFactHandle().getObject()).getNotInEqualTestObject() );
InternalFactHandle jfh1 = tms.get( "f1" ).getLogicalFactHandle(); assertEquals(EqualityKey.JUSTIFIED, jfh1.getEqualityKey().getStatus() ); session.fireAllRules(); assertEquals( EqualityKey.STATED, fh1.getEqualityKey().getStatus()); assertEquals( 1, fh1.getEqualityKey().getBeliefSet().size() ); assertSame( fh1.getEqualityKey(), jfh1.getEqualityKey() ); assertNotSame( fh1, jfh1 ); session.fireAllRules(); assertNull(fh1.getEqualityKey().getBeliefSet());
InternalFactHandle jfh1 = tms.get( "f1" ).getLogicalFactHandle(); assertEquals(EqualityKey.JUSTIFIED, jfh1.getEqualityKey().getStatus() ); session.fireAllRules(); assertEquals( EqualityKey.STATED, fh1.getEqualityKey().getStatus()); assertSame( fh1.getEqualityKey(), jfh1.getEqualityKey() ); assertNotSame( fh1, jfh1 ); assertNotSame( fh1, jfh1 ); assertEquals(2, key.size()); assertSame( jfh1, key.getLogicalFactHandle() );
org.drools.core.util.Iterator it = equalityMap.iterator(); EqualityKey key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( "neg") ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 3, key.getBeliefSet().size() ); ep.getTruthMaintenanceSystem().delete( key.getLogicalFactHandle() ); assertEquals( 0, key.getBeliefSet().size() ); assertEquals( 0, key.getBeliefSet().size() ); assertEquals( 1, ep.getTruthMaintenanceSystem().getEqualityKeyMap().size() );
key.getFactHandle() ); assertEquals( 2, key.size() ); key = tms.get( string ); assertSame( fz, key.getFactHandle() ); assertEquals( 2, key.size() ); key = tms.get( string ); assertSame( fd, key.getFactHandle() ); assertEquals( 1, key.size() );
InternalFactHandle jfh1 = tms.get( "f1" ).getLogicalFactHandle(); assertEquals(EqualityKey.JUSTIFIED, jfh1.getEqualityKey().getStatus() ); session.fireAllRules(); assertEquals( EqualityKey.STATED, fh1.getEqualityKey().getStatus()); assertSame( fh1.getEqualityKey(), jfh1.getEqualityKey() ); assertNotSame( fh1, jfh1 );
String name = (String) type.get( o, "name" ); if ( "Mary".equals( name ) ) { assertNull( h.getEqualityKey().getBeliefSet() ); } else if ( "John".equals( name ) ) { BeliefSet bs = h.getEqualityKey().getBeliefSet(); assertTrue( bs.isPositive() ); assertEquals( 2, bs.size() );
assertEquals( EqualityKey.JUSTIFIED, f42.getEqualityKey().getStatus() );
assertSame( ((InternalFactHandle)h1).getEqualityKey().getLogicalFactHandle(), h1); ((StatefulKnowledgeSessionImpl)session).getTruthMaintenanceSystem().delete( h1 ); session.fireAllRules();
@Test(timeout = 10000 ) public void testDefeaterNeutrality() { KieSession kSession = getSession( "org/drools/compiler/beliefsystem/defeasible/defeaterOnly.drl" ); ArrayList list = new ArrayList(); kSession.setGlobal( "list", list ); kSession.fireAllRules(); TruthMaintenanceSystem tms = ((NamedEntryPoint) kSession.getEntryPoint( "DEFAULT" )).getTruthMaintenanceSystem(); FactType Xtype = kSession.getKieBase().getFactType( "org.drools.defeasible", "X" ); ObjectHashMap keys = tms.getEqualityKeyMap(); Iterator iter = keys.iterator(); ObjectHashMap.ObjectEntry entry; while ( ( entry = ( ObjectHashMap.ObjectEntry) iter.next() ) != null ) { EqualityKey key = (EqualityKey) entry.getValue(); Class factClass = key.getFactHandle().getObject().getClass(); if ( factClass == Xtype.getFactClass() ) { checkStatus( key, 1, DefeasibilityStatus.DEFEATEDLY ); } else { fail( "Unrecognized object has been logically justified : " + factClass ); } } for ( Object o : kSession.getObjects() ) { System.out.println( o ); } assertEquals( 0, list.size() ); assertEquals( 1, kSession.getFactCount() ); }
org.drools.core.util.Iterator it = equalityMap.iterator(); EqualityKey key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( new Person( "darth") ) ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 3, key.getBeliefSet().size() ); assertEquals( new Integer(1), ((Person)key.getBeliefSet().getFactHandle().getObject()).getNotInEqualTestObject() ); it = equalityMap.iterator(); key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( new Person( "darth") ) ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 2, key.getBeliefSet().size() ); assertEquals( new Integer(3), ((Person)key.getBeliefSet().getFactHandle().getObject()).getNotInEqualTestObject() ); it = equalityMap.iterator(); key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); while ( !key.getFactHandle().getObject().equals( new Person( "darth") ) ) { key = ( EqualityKey ) (( ObjectEntry ) it.next() ).getValue(); assertEquals( 1, key.getBeliefSet().size() ); assertEquals( new Integer(2), ((Person)key.getBeliefSet().getFactHandle().getObject()).getNotInEqualTestObject() );
InternalFactHandle jfh1 = ((StatefulKnowledgeSessionImpl)session).getTruthMaintenanceSystem().get( "f1" ).getLogicalFactHandle(); assertEquals( EqualityKey.JUSTIFIED, jfh1.getEqualityKey().getStatus());
DefeasibleBeliefSet dbs = (DefeasibleBeliefSet) posHandle.getEqualityKey().getBeliefSet(); assertEquals( 1, dbs.size() ); assertFalse( dbs.isNegated() ); dbs = (DefeasibleBeliefSet) negHandle.getEqualityKey().getBeliefSet(); assertEquals( 1, dbs.size() ); assertFalse( dbs.isPositive() );
assertEquals( EqualityKey.JUSTIFIED, ifh.getEqualityKey().getStatus() );
@Test(timeout=10000) public void testLogicalWithDeleteException() { String droolsSource = "package org.drools.tms.test; \n" + "global java.util.List list; \n" + "rule Justify \n" + "when \n" + " String( this == 'go1' ) " + "then \n" + " insertLogical( 'f1' ); \n" + "end \n" + "" ; KieBaseConfiguration kieConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kieConf.setOption( EqualityBehaviorOption.IDENTITY ); KieBase kbase = loadKnowledgeBaseFromString( kieConf, droolsSource ); KieSession session = kbase.newKieSession(); try { List list = new ArrayList(); session.setGlobal("list", list); session.insert( "go1" ); session.fireAllRules(); TruthMaintenanceSystem tms = ((StatefulKnowledgeSessionImpl)session).getTruthMaintenanceSystem(); InternalFactHandle jfh1 = tms.get( "f1" ).getLogicalFactHandle(); assertSame( jfh1, session.getFactHandle( "f1" ) ); } finally { session.dispose(); } }
EqualityKey key = (EqualityKey) entry.getValue(); Class factClass = key.getFactHandle().getObject().getClass(); if ( factClass == Xtype.getFactClass() ) { checkStatus( key, 1, DefeasibilityStatus.DEFEATEDLY ); EqualityKey key = (EqualityKey) entry.getValue(); Class factClass = key.getFactHandle().getObject().getClass(); if ( factClass == Xtype.getFactClass() ) { checkStatus( key, 3, DefeasibilityStatus.DEFEASIBLY ); EqualityKey key = (EqualityKey) entry.getValue(); Class factClass = key.getFactHandle().getObject().getClass(); if ( factClass == Xtype.getFactClass() ) { checkStatus( key, 1, DefeasibilityStatus.DEFEATEDLY );