public void EventLapAverages_Best5LapAverage_ReturnsCorrectValues() { // Arrange int expectedCount = 3; string expectedFirstCarNumber = "3"; double expectedFirstLapAverage = 7.0; string expectedSecondCarNumber = "2"; double expectedSecondLapAverage = 8.0; string expectedThirdCarNumber = "1"; double expectedThirdLapAverage = 9.0; EventLapAverages averages = BuildTestEvent20LapAverages(); // Act var lapAverages = averages.BestFiveLapAverages.ToList(); // Assert Assert.AreEqual(expectedCount, lapAverages.Count); Assert.AreEqual(expectedFirstCarNumber, lapAverages[0].CarNumber); Assert.AreEqual(expectedFirstLapAverage, lapAverages[0].AverageLapTime); Assert.AreEqual(expectedSecondCarNumber, lapAverages[1].CarNumber); Assert.AreEqual(expectedSecondLapAverage, lapAverages[1].AverageLapTime); Assert.AreEqual(expectedThirdCarNumber, lapAverages[2].CarNumber); Assert.AreEqual(expectedThirdLapAverage, lapAverages[2].AverageLapTime); }
/// <summary> /// Creates records for 3 cars having 2 laps /// </summary> protected virtual EventLapAverages BuildTestEvent2LapAverages() { EventLapAverages averages = new EventLapAverages(); int carCount = 3; int lapCount = 2; for (int carIndex = 1; carIndex < carCount + 1; carIndex++) { for (int lapIndex = 1; lapIndex < lapCount + 1; lapIndex++) { double lapTime = 10.0 - carIndex; averages.AddLapTime( new VehicleLapTime() { CarNumber = carIndex.ToString(), TrackState = TrackState.Green, VehicleStatus = VehicleStatus.OnTrack, LapNumber = lapIndex, LapTime = lapTime, LapSpeed = 100 - lapTime }); } } return(averages); }
public void EventLapAverages_Best20LapAverage_1CarNotEnoughLaps_Returns2Cars() { // Arrange int expectedCount = 2; string expectedFirstCarNumber = "2"; double expectedFirstLapAverage = 18.0; string expectedSecondCarNumber = "1"; double expectedSecondLapAverage = 19.0; EventLapAverages averages = BuildTestEvent20And2LapAverages(); // Act var lapAverages = averages.BestTwentyLapAverages.ToList(); // Assert Assert.AreEqual(expectedCount, lapAverages.Count); Assert.AreEqual(expectedFirstCarNumber, lapAverages[0].CarNumber); Assert.AreEqual(expectedFirstLapAverage, lapAverages[0].AverageLapTime); Assert.AreEqual(expectedSecondCarNumber, lapAverages[1].CarNumber); Assert.AreEqual(expectedSecondLapAverage, lapAverages[1].AverageLapTime); }
protected virtual void EventSettingsUpdated(EventSettings eventSettings) { if (eventSettings.activityId != (int)RunType.Race) { Configuration.BattleGap = 0.0; } _eventLapAverages = new EventLapAverages(); }
public void EventLapAverages_Last5LapAverage_AllCarsNotEnoughLaps_EmptyList() { // Arrange int expectedCount = 0; EventLapAverages averages = BuildTestEvent2LapAverages(); // Act var lapAverages = averages.LastFiveLapAverages.ToList(); // Assert Assert.AreEqual(expectedCount, lapAverages.Count); }
/// <summary> /// Creates records for 2 cars having 20 laps and 1 car having 2 laps /// </summary> protected virtual EventLapAverages BuildTestEvent20And2LapAverages() { EventLapAverages averages = new EventLapAverages(); int carCount = 3; int lapCount = 20; int slowLapCutoff1 = 5; int slowLapCutoff2 = 15; for (int carIndex = 1; carIndex < carCount + 1; carIndex++) { for (int lapIndex = 1; lapIndex < lapCount + 1; lapIndex++) { if (carIndex < 3 || (carIndex >= 3 && lapIndex < 3)) { double lapTime; if (lapIndex > slowLapCutoff2) { lapTime = 30.0 - carIndex; } else if (lapIndex > slowLapCutoff1) { lapTime = 20.0 - carIndex; } else { lapTime = 10.0 - carIndex; } averages.AddLapTime( new VehicleLapTime() { CarNumber = carIndex.ToString(), TrackState = TrackState.Green, VehicleStatus = VehicleStatus.OnTrack, LapNumber = lapIndex, LapTime = lapTime, LapSpeed = 100 - lapTime }); } } } return(averages); }