Example #1
0
    def test_changeFreq(self):
        mockTime = self.mockTime

        mockTime.timeNow = 5020.8
        
        b = SysClock()
        c = CorrelatedClock(b, 1000, correlation=(50,300))
        self.assertAlmostEqual(c.ticks, (5020.8*1000000 - 50)/(1000000/1000) + 300, places=5)
        
        self.assertEqual(c.tickRate, 1000)
        c.tickRate = 500
        self.assertEqual(c.tickRate, 500)
        self.assertAlmostEqual(c.ticks, (5020.8*1000000 - 50)/(1000000/500) + 300, places=5)
Example #2
0
    def test_changeFreq(self):
        mockTime = self.mockTime

        b = self.newSysClock()

        mockTime.timeNow = 5020.8

        c = CorrelatedClock(b, 1000, correlation=Correlation(50, 300))
        self.assertAlmostEqual(c.ticks, (5020.8 * 1000000 - 50) /
                               (1000000 / 1000) + 300,
                               places=5)

        self.assertEqual(c.tickRate, 1000)
        c.tickRate = 500
        self.assertEqual(c.tickRate, 500)
        self.assertAlmostEqual(c.ticks,
                               (5020.8 * 1000000 - 50) / (1000000 / 500) + 300,
                               places=5)
Example #3
0
    def test_changeFreqNotifies(self):
        mockTime = self.mockTime

        mockTime.timeNow = 5020.8
        
        b = SysClock()
        c = CorrelatedClock(b, 1000, correlation=(50,300))
        cc = CorrelatedClock(c, 50)
        
        d1 = MockDependent()
        d2 = MockDependent()
        d3 = MockDependent()
        
        b.bind(d1)
        c.bind(d2)
        cc.bind(d3)
        
        c.tickRate = 500
        
        d1.assertNotNotified()
        d2.assertNotificationsEqual([c])
        d3.assertNotificationsEqual([cc])
Example #4
0
    def test_changeFreqNotifies(self):
        mockTime = self.mockTime

        b = self.newSysClock()

        mockTime.timeNow = 5020.8

        c = CorrelatedClock(b, 1000, correlation=Correlation(50, 300))
        cc = CorrelatedClock(c, 50)

        d1 = MockDependent()
        d2 = MockDependent()
        d3 = MockDependent()

        b.bind(d1)
        c.bind(d2)
        cc.bind(d3)

        c.tickRate = 500

        d1.assertNotNotified()
        d2.assertNotificationsEqual([c])
        d3.assertNotificationsEqual([cc])
Example #5
0
    def test_clockDiff(self):
        a = self.newSysClock()
        self.mockTime.timeNow = 1
        b = CorrelatedClock(a, 1000, correlation=Correlation(0, 0))
        c = CorrelatedClock(b, 2000, correlation=Correlation(0, 0))
        d = CorrelatedClock(c, 3000, correlation=Correlation(0, 0))
        e = RangeCorrelatedClock(d, 1000, Correlation(5, 0),
                                 Correlation(15005, 5000))

        self.assertEquals(float('inf'), b.clockDiff(c))
        self.assertEquals(float('inf'), b.clockDiff(d))
        self.assertAlmostEquals(0.001666667, b.clockDiff(e), delta=0.000001)

        self.mockTime.timeNow += 10000000

        self.assertEquals(float('inf'), b.clockDiff(c))
        self.assertEquals(float('inf'), b.clockDiff(d))
        self.assertAlmostEquals(0.001666667, b.clockDiff(e), delta=0.000001)

        c.tickRate = 1000
        self.assertEquals(0, b.clockDiff(c))

        c.speed = 1.01
        self.assertEquals(float('inf'), b.clockDiff(c))