def test_distantParentMidHierarchy(self): a = SysClock(tickRate=1000000) a1 = CorrelatedClock(a, tickRate=100, correlation=(50,0)) a2 = CorrelatedClock(a1, tickRate=78, correlation=(28,999)) a3 = CorrelatedClock(a2, tickRate=178, correlation=(5,1003)) a4 = CorrelatedClock(a3, tickRate=28, correlation=(17,9)) self.assertEquals(a3.toOtherClockTicks(a1, 500), a2.toParentTicks(a3.toParentTicks(500)))
def test_distantParentMidHierarchy(self): a = self.newSysClock(tickRate=1000000) a1 = CorrelatedClock(a, tickRate=100, correlation=Correlation(50, 0)) a2 = CorrelatedClock(a1, tickRate=78, correlation=Correlation(28, 999)) a3 = CorrelatedClock(a2, tickRate=178, correlation=Correlation(5, 1003)) a4 = CorrelatedClock(a3, tickRate=28, correlation=Correlation(17, 9)) self.assertEquals(a3.toOtherClockTicks(a1, 500), a2.toParentTicks(a3.toParentTicks(500)))
def test_toParentTicks(self): mockTime = self.mockTime b = self.newSysClock(tickRate=2000000) mockTime.timeNow = 1000.0 c = CorrelatedClock(b, 1000, correlation=Correlation(50, 300)) self.assertAlmostEqual(c.toParentTicks(400), 50 + (400 - 300) * 2000, places=5) c = CorrelatedClock(b, 1000, correlation=Correlation(50, 300), speed=0) self.assertEquals(c.toParentTicks(300), 50) self.assertTrue(math.isnan(c.toParentTicks(400)))
def test_differentBranches(self): a = SysClock(tickRate=1000000) a1 = CorrelatedClock(a, tickRate=100, correlation=(50,0)) a2 = CorrelatedClock(a1, tickRate=78, correlation=(28,999)) a3 = CorrelatedClock(a2, tickRate=178, correlation=(5,1003)) a4 = CorrelatedClock(a3, tickRate=28, correlation=(17,9)) b3 = CorrelatedClock(a2, tickRate=1000, correlation=(10,20)) b4 = CorrelatedClock(b3, tickRate=2000, correlation=(15,90)) v = a4.toParentTicks(500) v = a3.toParentTicks(v) v = b3.fromParentTicks(v) v = b4.fromParentTicks(v) self.assertEquals(a4.toOtherClockTicks(b4, 500), v)
def test_toParentTicks(self): mockTime = self.mockTime mockTime.timeNow = 1000.0 b = SysClock(tickRate=2000000) c = CorrelatedClock(b, 1000, correlation=(50,300)) self.assertAlmostEqual(c.toParentTicks(400), 50 + (400-300)*2000, places=5 )
def test_setCorrelationAndSpeed(self): a = self.newSysClock(tickRate=1000000) b = CorrelatedClock(a, 1000, correlation=Correlation(0, 0)) b.speed = 1.0 db = MockDependent() b.bind(db) b.setCorrelationAndSpeed(Correlation(5, 0), 2) db.assertNotificationsEqual([b]) self.assertEqual(b.toParentTicks(10), 5005)
def test_differentBranches(self): a = self.newSysClock(tickRate=1000000) a1 = CorrelatedClock(a, tickRate=100, correlation=Correlation(50, 0)) a2 = CorrelatedClock(a1, tickRate=78, correlation=Correlation(28, 999)) a3 = CorrelatedClock(a2, tickRate=178, correlation=Correlation(5, 1003)) a4 = CorrelatedClock(a3, tickRate=28, correlation=Correlation(17, 9)) b3 = CorrelatedClock(a2, tickRate=1000, correlation=Correlation(10, 20)) b4 = CorrelatedClock(b3, tickRate=2000, correlation=Correlation(15, 90)) v = a4.toParentTicks(500) v = a3.toParentTicks(v) v = b3.fromParentTicks(v) v = b4.fromParentTicks(v) self.assertEquals(a4.toOtherClockTicks(b4, 500), v)
def test_distantParent(self): a = self.newSysClock(tickRate=1000000) a1 = CorrelatedClock(a, tickRate=100, correlation=Correlation(50, 0)) a2 = CorrelatedClock(a1, tickRate=78, correlation=Correlation(28, 999)) self.assertEquals(a2.toOtherClockTicks(a, 500), a1.toParentTicks(a2.toParentTicks(500)))
def test_distantParent(self): a = SysClock(tickRate=1000000) a1 = CorrelatedClock(a, tickRate=100, correlation=(50,0)) a2 = CorrelatedClock(a1, tickRate=78, correlation=(28,999)) self.assertEquals(a2.toOtherClockTicks(a, 500), a1.toParentTicks(a2.toParentTicks(500)))