public void DelayedCorrectlySuperLatePeer() { for (var i = 0; i < 60; i++) { var testClock = new TestClock(autostart: true, framesPerSecond: 60); var clock = new PlayoutDelayedClock(simulationRate: 60, playoutDelayFrameCount: i, timeClock: testClock); clock.PeerCount = 2; var frame = 0; for (; frame < 1000; frame++) { clock.SetReadyForFrame(frame, 0); testClock.Timer.ElapseTicks((long)(10e10 * 1.0 / 60.0)); } Assert.AreEqual(0, clock.ElapsedFrameCount); for (frame = 0; frame < 1000; frame++) { clock.SetReadyForFrame(frame, 1); Assert.AreEqual(frame, clock.HighestExecutableFrame); testClock.Timer.ElapseTicks((long)(10e10 * 1.0 / 60.0)); } Assert.AreEqual(frame - i, clock.ElapsedFrameCount, "Incrementing the peer count a second time did not result in a correctly resumed PlayoutDelayedClock"); } }
public void DelayedCorrectlyWithTwoPeers() { for (var i = 0; i < 60; i++) { var testClock = new TestClock(autostart: true, framesPerSecond: 60); var clock = new PlayoutDelayedClock(simulationRate: 60, playoutDelayFrameCount: i, timeClock: testClock); clock.PeerCount = 2; var frame = 0; for (; frame < 1000; frame++) { clock.SetReadyForFrame(frame, 0); clock.SetReadyForFrame(frame, 1); testClock.Timer.ElapseTicks((long)(10e10 * 1.0 / 60.0)); } Assert.AreEqual(frame - i, clock.ElapsedFrameCount); } }