public void Should_Return_Valid_Object_Line_Format_One() { string mockLine = "23:49:08.277 038 – F.MASSA 1 1:02.852 44,275"; var lap = Lap.BuildLapObject(mockLine); Assert.NotNull(lap); }
public void Should_Return_Valid_Object_Line_Format_Two() { string mockLine = "23:49:11.075 002 – K.RAIKKONEN 1 1:04.108 43,408"; var lap = Lap.BuildLapObject(mockLine); Assert.NotNull(lap); }
public Metrics GetRaceMetrics(StreamReader raceStreamReader) { var metrics = new Metrics(); metrics.PrincipalMetrics = new List <PrincipalMetrics>(); string line = raceStreamReader.ReadLine(); List <Lap> lapObject = new List <Lap>(); List <Lap> lapPilotList; int pilotNumber; BestLapDetail bestPilotLap; BestLapDetail bestRaceLap; List <decimal> averageSpeed; while ((line = raceStreamReader.ReadLine()) != null) { lapObject.Add(Lap.BuildLapObject(line)); } bestRaceLap = Lap.GetBestLap(lapObject); foreach (var pilotNumberIterator in lapObject.GroupBy(u => u.PilotNumber)) { pilotNumber = pilotNumberIterator.Key; lapPilotList = lapObject.Where(u => u.PilotNumber.Equals(pilotNumber)).ToList(); bestPilotLap = Lap.GetBestLap(lapPilotList); averageSpeed = lapPilotList.Select(u => u.LapAVG).ToList(); metrics.PrincipalMetrics.Add( new PrincipalMetrics() { QuantityCompletedLap = Race.GetCompletedLaps(lapPilotList), PilotTotalTime = Pilot.GetPilotTotalTime(Lap.GetTotalValidLaps(lapPilotList) .Select(u => Lap.GetTimeSpanFromLapString(u.LapTime)).ToList()), PilotNumber = Pilot.GetPilotNumber(lapPilotList), PilotName = Pilot.GetPilotName(lapPilotList), BestLap = $"Melhor volta do piloto: {bestPilotLap.LapNumber}, Tempo: {bestPilotLap.LapTime}", AverageSpeed = Pilot.GetPilotAverageSpeed(averageSpeed) }); } metrics.AdicionalMetrics = new AdicionalMetrics() { BestRaceLap = $"Melhor volta da corrida: {bestRaceLap.LapNumber}, Tempo: {bestRaceLap.LapTime}, Piloto: {bestRaceLap.Pilot}" }; Race.SetPosition(metrics.PrincipalMetrics); return(metrics); }
public void Should_Fail_No_Data_Present_In_Model() { string mockLine = ""; Assert.Throws <ArgumentOutOfRangeException>(() => Lap.BuildLapObject(mockLine)); }
public void Should_Fail_No_Datetime_Present_In_Model() { string mockLine = "002 – K.RAIKKONEN 1 1:04.108 43,408"; Assert.Throws <FormatException>(() => Lap.BuildLapObject(mockLine)); }