void LazyOutputManagerTest::testLazyCancel(){ LazyOutputManager *toCheck = dynamic_cast<LazyOutputManager *>( toTest ); CPPUNIT_ASSERT( toTest != 0 ); LOMSimMgr *simMgr = dynamic_cast<LOMSimMgr *>(getSimManager()); CPPUNIT_ASSERT( simMgr != 0 ); CPPUNIT_ASSERT( simMgr->negativeCount() == 0 ); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 0); //Insert events into the output manager. toTest->insert(new UnitTestEvent( *new IntVTime( 1 ), getSimObj1ID(), *new IntVTime( 0 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 1 ), getSimObj1ID(), *new IntVTime( 0 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 1 ), getSimObj1ID(), *new IntVTime( 0 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 2 ), getSimObj1ID(), *new IntVTime( 1 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 3 ), getSimObj1ID(), *new IntVTime( 2 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 3 ), getSimObj1ID(), *new IntVTime( 2 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 5 ), getSimObj1ID(), *new IntVTime( 4 ) )); toTest->insert(new UnitTestEvent( *new IntVTime( 6 ), getSimObj1ID(), *new IntVTime( 5 ) )); //Rollback the output manager and check the lazy queue. toTest->rollback( getSimObj1(), IntVTime(2) ); CPPUNIT_ASSERT( simMgr->negativeCount() == 0 ); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 4 ); CPPUNIT_ASSERT( getNumLazyCancelEvents( toTest, *(getSimObj1()->getObjectID()) ) == 7 ); //Test the case where all events are regenerated. CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 3 ), getSimObj1ID(), *new IntVTime( 2 ) ))); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 3 ), getSimObj1ID(), *new IntVTime( 2 ) ))); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) ))); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) ))); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) ))); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 5 ), getSimObj1ID(), *new IntVTime( 4 ) ))); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 6 ), getSimObj1ID(), *new IntVTime( 5 ) ))); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 11 ); CPPUNIT_ASSERT( getNumLazyCancelEvents( toTest, *(getSimObj1()->getObjectID()) ) == 0 ); CPPUNIT_ASSERT( simMgr->negativeCount() == 0 ); toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 7 ), getSimObj1ID(), *new IntVTime( 6 ) )); //Test the case where some events are not regenerated. toTest->rollback( getSimObj1(), IntVTime(2) ); CPPUNIT_ASSERT( toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 4 ), getSimObj1ID(), *new IntVTime( 3 ) ))); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 5 ); CPPUNIT_ASSERT( getNumLazyCancelEvents( toTest, *(getSimObj1()->getObjectID()) ) == 5 ); CPPUNIT_ASSERT( simMgr->negativeCount() == 2 ); CPPUNIT_ASSERT( !toCheck->lazyCancel(new UnitTestEvent( *new IntVTime( 8 ), getSimObj1ID(), *new IntVTime( 7 ) ))); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 6 ); CPPUNIT_ASSERT( getNumLazyCancelEvents( toTest, *(getSimObj1()->getObjectID()) ) == 0 ); CPPUNIT_ASSERT( simMgr->negativeCount() == 7 ); }
void SchedulingManagerTest::testGetNextEvent( SchedulingManager *toTest ) { CPPUNIT_ASSERT( toTest != 0 ); doDefaultInsert( getSimManager()->getEventSetManager() ); const Event *event1 = toTest->peekNextEvent(); CPPUNIT_ASSERT( event1 != 0 ); CPPUNIT_ASSERT( toTest->getLastEventScheduledTime() == IntVTime(0) ); CPPUNIT_ASSERT( event1 == getSimManager()->getEventSetManager()->getEvent( getSimObj1() ) ); const Event *event2 = toTest->peekNextEvent(); CPPUNIT_ASSERT( event2 != 0 ); CPPUNIT_ASSERT( toTest->getLastEventScheduledTime() == IntVTime(0) ); CPPUNIT_ASSERT( event2 == getSimManager()->getEventSetManager()->getEvent( getSimObj1() ) ); const Event *event3 = toTest->peekNextEvent(); CPPUNIT_ASSERT( event3 != 0 ); CPPUNIT_ASSERT( toTest->getLastEventScheduledTime() == IntVTime(0) ); CPPUNIT_ASSERT( event3 == getSimManager()->getEventSetManager()->getEvent( getSimObj1() ) ); const Event *event4 = toTest->peekNextEvent(); CPPUNIT_ASSERT( event4 != 0 ); CPPUNIT_ASSERT( toTest->getLastEventScheduledTime() == IntVTime(1) ); CPPUNIT_ASSERT( event4 == getSimManager()->getEventSetManager()->getEvent( getSimObj1() ) ); checkDefaultEvents( event1, event2, event3, event4 ); }
void LazyOutputManagerTest::testRollback(){ CPPUNIT_ASSERT( toTest != 0 ); LOMSimMgr *simMgr = dynamic_cast<LOMSimMgr *>(getSimManager()); CPPUNIT_ASSERT( simMgr != 0 ); CPPUNIT_ASSERT( simMgr->negativeCount() == 0 ); doDefaultInsert( toTest ); toTest->rollback( getSimObj1(), IntVTime(1) ); CPPUNIT_ASSERT( simMgr->negativeCount() == 0 ); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 4 ); CPPUNIT_ASSERT( getNumLazyCancelEvents( toTest, *(getSimObj1()->getObjectID()) ) == 0 ); toTest->rollback( getSimObj1(), IntVTime(0) ); CPPUNIT_ASSERT( simMgr->negativeCount() == 0 ); CPPUNIT_ASSERT( getNumElements( toTest, *(getSimObj1()->getObjectID()) ) == 0 ); CPPUNIT_ASSERT( getNumLazyCancelEvents( toTest, *(getSimObj1()->getObjectID()) ) == 4 ); }
void CostAdaptiveStateManagerTest::setUp() { WarpedUnitTest::setUp(); toTest = new CASMTestClass(getSimManager()); }
void LazyOutputManagerTest::setUp(){ OutputManagerTest::setUp(); toTest = new LazyOutputManagerTestClass( getSimManager() ); }
void AdaptiveStateManagerBaseTest::setUp() { WarpedUnitTest::setUp(); toTest = new ASMBTestClass(getSimManager()); }