예제 #1
0
    def testRemove(self):
        '''Test the remove Method'''
        a = OrderedSet()
        event1 = CounterEvent(2)
        event2 = CounterEvent(1)
        event3 = CounterEvent(0.5)
        event4 = CounterEvent(4.5)
        #Start Inserting
        #---------------------------------------------------------------------------------
        a.insert(event1)
        a.insert(event2)
        a.insert(event3)
        a.insert(event4)

        #Testing Remove
        #---------------------------------------------------------------------------------
        self.assertEqual(
            '[<Event: 0.5>*, <Event: 1.0>, <Event: 2.0>, <Event: 4.5>]',
            str(a))

        a.remove(event3)
        self.assertEqual('[<Event: 1.0>*, <Event: 2.0>, <Event: 4.5>]', str(a))
        a.remove(event1)
        self.assertEqual('[<Event: 1.0>*, <Event: 4.5>]', str(a))
        a.remove(event2)
        a.remove(event4)
        self.assertEqual('[]', str(a))
    def testInsert_CounterEvent_reposition(self):
        '''Test Case for insertion------When thing to be inserted already in the set'''

        a=OrderedSet()
        event1 = CounterEvent(2)
        event2 = CounterEvent(1)
        event3 = CounterEvent(0.5)
        event4 = CounterEvent(4.5)

        #Insert Events in first
        #Check the result
        #Change Event 3
        #Check again(Event Time Is changed/ Event Order is not chagned (wrong order))
        #Insert Event 3
        #Check again (Now ORder Should be Corrected)
        #---------------------------------------------------------------------------------                      
        a.insert(event1)
        a.insert(event2)
        a.insert(event3)
        a.insert(event4)
        
        self.assertEqual('[<Event: 0.5>*, <Event: 1.0>, <Event: 2.0>, <Event: 4.5>]',str(a))

        event3.item = 4.75
        self.assertEqual('[<Event: 4.75>*, <Event: 1.0>, <Event: 2.0>, <Event: 4.5>]',str(a))
        print (a)

        a.insert(event3)
        self.assertEqual('[<Event: 1.0>*, <Event: 2.0>, <Event: 4.5>, <Event: 4.75>]',str(a))
예제 #3
0
 def testConstructor(self):
     e = CounterEvent(4)
     self.assertEqual(str(e), '<Event: 4.0>')
     e = CounterEvent(2)
     self.assertEqual(str(e), '<Event: 2.0>')
     e = CounterEvent(2.5)
     self.assertEqual(str(e), '<Event: 2.5>')
예제 #4
0
    def test_in_overloading(self):
        ''' Test the "in" operator overloading'''

        a = OrderedSet()
        event1 = CounterEvent(4)
        event2 = CounterEvent(5)
        event3 = CounterEvent(5.5)
        event4 = CounterEvent(4)
        a.insert(event1)
        a.insert(event2)
        a.insert(event3)
        self.assertEqual(True, event1 in a)
        self.assertEqual(False, event4 in a)
예제 #5
0
    def testInsert_CounterEvent(self):
        temp = []
        event1 = CounterEvent(2)
        event2 = CounterEvent(1)
        event3 = CounterEvent(0.5)
        event4 = CounterEvent(1)

        #case1
        #Distinctive event time
        #CHeck both use str() method and getset method

        #The advantage of getset method is that we can automatically sort the obeject and check it with the set
        # So that donot have to manually check the string version
        #---------------------------------------------------------------------------------
        a = OrderedSet()
        a.insert(event1)
        temp.append(event1)

        a.insert(event2)
        temp.append(event2)

        a.insert(event3)
        temp.append(event3)

        self.assertEqual(a.getset(), sorted(temp))
        self.assertEqual('[<Event: 0.5>*, <Event: 1.0>, <Event: 2.0>]', str(a))
        #Case2
        #Reapted Event Time (different Objects)
        #---------------------------------------------------------------------------------
        temp = []
        a = OrderedSet()
        a.insert(event1)
        temp.append(event1)

        a.insert(event2)
        temp.append(event2)

        a.insert(event3)
        temp.append(event3)

        a.insert(event4)
        temp.append(event4)

        self.assertEqual(a.getset(), sorted(temp))
        self.assertEqual(
            '[<Event: 0.5>*, <Event: 1.0>, <Event: 1.0>, <Event: 2.0>]',
            str(a))
        #Additional Check
        #Check the event 4 is after event 2(For events with same time, the event inserted later is after)
        b = a.getset()
        self.assertTrue(True, b[2] is event4)
예제 #6
0
 def testExecuteInsert(self):
     s = Simulator()
     e = CounterEvent(0)
     e.execute(s)
     self.assertEqual(str(s), "<0.0: [<Event: 2.0>]>")
     e = CounterEvent(5)
     e.execute(s)
     self.assertEqual(str(s), "<0.0: [<Event: 2.0>, <Event: 7.0>]>")
예제 #7
0
 def testBadConstructor(self):
     try:
         val = 'cat'
         CounterEvent(val)
         self.assertTrue(False, 'no exception non number CounterEvent')
     except TypeError:
         self.assertTrue(True)
 def testSimulateTwo(self):
     sim = CounterSim()
     sim.setup(5)
     extra = CounterEvent(3)
     sim.insert(extra)
     sim.doAllEvents()
     self.assertTrue(True)
예제 #9
0
    def testExecuteReturn(self):
        s = Simulator()
        e = CounterEvent(0)
        retval = e.execute(s).lower()
        self.assertEqual(retval, "the event time is 0.0")

        s = Simulator()
        e = CounterEvent(5.25)
        retval = e.execute(s).lower()
        self.assertEqual(retval, "the event time is 5.25")

        s = Simulator()
        e = CounterEvent(2)
        retval = e.execute(s).lower()
        self.assertEqual(retval, "the event time is 2.0")
예제 #10
0
    def testRemovefirst(self):
        ''' Test for RemoveFirst method'''

        a = OrderedSet()
        event1 = CounterEvent(2)
        event2 = CounterEvent(1)
        event3 = CounterEvent(0.5)
        event4 = CounterEvent(4.5)
        #Insert the events in first
        #---------------------------------------------------------------------------------
        a.insert(event1)
        a.insert(event2)
        a.insert(event3)
        a.insert(event4)

        #Aplly RemoveFirst
        #Check both the thing returned
        #and also the object left in the set
        #---------------------------------------------------------------------------------
        self.assertEqual(
            '[<Event: 0.5>*, <Event: 1.0>, <Event: 2.0>, <Event: 4.5>]',
            str(a))
        temp = a.removeFirst()
        self.assertEqual(True, temp is event3)

        self.assertEqual('[<Event: 1.0>*, <Event: 2.0>, <Event: 4.5>]', str(a))

        temp = a.removeFirst()
        self.assertEqual(True, temp is event2)

        self.assertEqual('[<Event: 2.0>*, <Event: 4.5>]', str(a))

        temp = a.removeFirst()
        self.assertEqual(True, temp is event1)
        self.assertEqual('[<Event: 4.5>*]', str(a))

        temp = a.removeFirst()
        self.assertEqual(True, temp is event4)
        self.assertEqual('[]', str(a))

        temp = a.removeFirst()
        self.assertEqual(None, temp)
예제 #11
0
 def testLessThanOrEquals(self):
     e = CounterEvent(5)
     r = CounterEvent(9)
     self.assertTrue(e <= r)
     e = CounterEvent(4)
     r = CounterEvent(4)
     self.assertTrue(e <= r)
     e = CounterEvent(2)
     r = CounterEvent(2.0)
     self.assertTrue(e <= r)
     e = CounterEvent(1.0)
     r = CounterEvent(13.2)
     self.assertTrue(e <= r)
예제 #12
0
 def testNotEqual(self):
     e = CounterEvent(5)
     r = CounterEvent(9)
     self.assertTrue(e != r)
     e = CounterEvent(4)
     r = CounterEvent(4)
     self.assertFalse(e != r)
     e = CounterEvent(2)
     r = CounterEvent(2.0)
     self.assertFalse(e != r)
     e = CounterEvent(1.0)
     r = CounterEvent(13.2)
     self.assertTrue(e != r)
예제 #13
0
    def test_camparison_Operators_overloading(self):
        '''Test Camparison Operators == /< /!= /<= overloading'''

        a = OrderedSet()
        event1 = CounterEvent(4)
        event2 = CounterEvent(5)
        event3 = CounterEvent(5.5)
        event4 = CounterEvent(4)
        #---------------------------------------------------------------------------------

        self.assertEqual(True, event1 < event2)
        self.assertEqual(False, event1 > event2)
        #---------------------------------------------------------------------------------
        self.assertEqual(True, event1 == event4)
        self.assertEqual(False, event1 != event4)
        #---------------------------------------------------------------------------------
        self.assertEqual(True, event1 <= event4)
        self.assertEqual(True, event1 >= event4)
        #---------------------------------------------------------------------------------
        self.assertEqual(True, event1 <= event3)
        self.assertEqual(False, event2 <= event4)
예제 #14
0
    def testInsert_CounterEvent_reposition(self):
        '''Test Case for insertion------When thing to be inserted already in the set'''

        a = OrderedSet()
        event1 = CounterEvent(2)
        event2 = CounterEvent(1)
        event3 = CounterEvent(0.5)
        event4 = CounterEvent(4.5)

        #Insert Events in first
        #Check the result
        #Change Event 3
        #Check again(Event Time Is changed/ Event Order is not chagned (wrong order))
        #Insert Event 3
        #Check again (Now ORder Should be Corrected)
        #---------------------------------------------------------------------------------
        a.insert(event1)
        a.insert(event2)
        a.insert(event3)
        a.insert(event4)

        self.assertEqual(
            '[<Event: 0.5>*, <Event: 1.0>, <Event: 2.0>, <Event: 4.5>]',
            str(a))

        event3.item = 4.75
        self.assertEqual(
            '[<Event: 4.75>*, <Event: 1.0>, <Event: 2.0>, <Event: 4.5>]',
            str(a))
        print(a)

        a.insert(event3)
        self.assertEqual(
            '[<Event: 1.0>*, <Event: 2.0>, <Event: 4.5>, <Event: 4.75>]',
            str(a))
 def testExecuteInsert(self):
     s = Simulator()
     e = CounterEvent(0)
     e.execute(s)
     self.assertEqual(str(s), "<0.0: [<Event: 2.0>]>")
     e = CounterEvent(5)
     e.execute(s)
     self.assertEqual(str(s), "<0.0: [<Event: 2.0>, <Event: 7.0>]>")
예제 #16
0
 def testLessThan(self):
     e = CounterEvent(5)
     r = CounterEvent(9)
     self.assertTrue(e < r)
     e = CounterEvent(4)
     r = CounterEvent(4)
     self.assertFalse(e < r)
     e = CounterEvent(2.5)
     r = CounterEvent(6.0)
     self.assertTrue(e < r)
예제 #17
0
 def testEquals(self):
     e = CounterEvent(5)
     r = CounterEvent(9)
     self.assertFalse(e == r)
     e = CounterEvent(4)
     r = CounterEvent(4)
     self.assertTrue(e == r)
     self.assertTrue(r == e)
     e = CounterEvent(2)
     r = CounterEvent(2.0)
     self.assertTrue(e == r)
    def testExecuteReturn(self):
        s = Simulator()
        e = CounterEvent(0)
        retval = e.execute(s).lower()
        self.assertEqual(retval, "the event time is 0.0")

        s = Simulator()
        e = CounterEvent(5.25)
        retval = e.execute(s).lower()
        self.assertEqual(retval, "the event time is 5.25")
        
        s = Simulator()
        e = CounterEvent(2)
        retval = e.execute(s).lower()
        self.assertEqual(retval, "the event time is 2.0")
예제 #19
0
 def testTime(self):
     e = CounterEvent(4)
     self.assertEqual(e.time(), 4.0)
     e = CounterEvent(9.4)
     self.assertEqual(e.time(), 9.4)
 def testExecuteInsert10(self):
     s = Simulator()
     e = CounterEvent(10)
     e.execute(s)
     self.assertEqual(str(s), "<0.0: []>")
 def testTime(self):
     e = CounterEvent(4)
     self.assertEqual(e.time(), 4.0)
     e = CounterEvent(9.4)
     self.assertEqual(e.time(), 9.4)
예제 #22
0
 def testExecuteInsert10(self):
     s = Simulator()
     e = CounterEvent(10)
     e.execute(s)
     self.assertEqual(str(s), "<0.0: []>")