public void TestNormalIncreaseDecreaseLap() { LapCounter lc = new LapCounter(2, cLapWaypointCount); for (int i = 0; i <= cLapWaypointCount; i++) { var k = i; if (i == cLapWaypointCount) { k = i - cLapWaypointCount; } lc.UpdateWayPointLocal(k); if (i < cLapWaypointCount) { Assert.AreEqual(0, lc.CurrentLap); } else { Assert.AreEqual(1, lc.CurrentLap); } } lc.UpdateWayPointLocal(cLapWaypointCount - 5); Assert.AreEqual(0, lc.CurrentLap); }
public void TestNetKartReconnect() { LapCounter lc = new LapCounter(3, cLapWaypointCount); for (int i = 0; i <= cLapWaypointCount; i++) { var k = i; if (i == cLapWaypointCount) { k = i - cLapWaypointCount; } lc.UpdateWayPointLocal(k); } lc.Reset(2, 8); Assert.AreEqual(2, lc.CurrentLap); lc.UpdateWayPointLocal(10); Assert.AreEqual(2, lc.CurrentLap); Assert.AreEqual(10, lc.CurrentWaypointIndex); }
public void TestPassiveResetForNetworkDelay2() { LapCounter lc = new LapCounter(2, cLapWaypointCount); for (int i = 0; i <= cLapWaypointCount / 2; i++) { var k = i; if (i == cLapWaypointCount) { k = i - cLapWaypointCount; } lc.UpdateWayPointLocal(k); } Assert.AreEqual(0, lc.CurrentLap); //继续同步remote一段时间,但本地模拟碰撞等情况,导致不更新路点 lc.UpdateWayPointRemote(0, lc.CurrentWaypointIndex - 2); lc.UpdateWayPointRemote(0, lc.CurrentWaypointIndex); lc.UpdateWayPointRemote(0, lc.CurrentWaypointIndex + 3); lc.UpdateWayPointRemote(0, lc.CurrentWaypointIndex + 10); lc.UpdateWayPointRemote(0, cLapWaypointCount - 5); lc.UpdateWayPointRemote(0, cLapWaypointCount - 3); //lc.UpdateWayPointRemote(1, 1); //一段时间后被动reset,直接跳跃式更新路点 lc.UpdateWayPointLocal(2); Assert.AreEqual(1, lc.CurrentLap); }
public void TestFinish() { LapCounter lc = new LapCounter(3, cLapWaypointCount); for (int i = 0; i <= cLapWaypointCount * 3; i++) { var k = i % cLapWaypointCount; lc.UpdateWayPointLocal(k); } Assert.AreEqual(3, lc.CurrentLap); Assert.IsTrue(lc.IsFinished); }