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);
     }
 }