public void RaceInformationTest() { //Arrange var extractService = new ExtractDataFake(); var computeService = new ComputeRankingKartRaceService(); var outputService = new OutputKartRaceInformationService(); //Act KartRaceInformation raceInfo = new KartRaceInformation(extractService, computeService, outputService); raceInfo.ExtractDataFromFile("bazinga.txt"); raceInfo.ComputeRanking(); raceInfo.GetBestLap(); raceInfo.PrintOutput(); //Assert Assert.AreEqual(raceInfo.Laps.Count, 4); Assert.AreEqual(raceInfo.Ranking.Count, 2); Assert.AreEqual(raceInfo.Ranking[0].PilotCode, "001"); Assert.AreEqual(raceInfo.Ranking[0].PilotName, "Pilot 1"); Assert.AreEqual(raceInfo.Ranking[0].BestLapNumber, 2); Assert.AreEqual(raceInfo.Ranking[1].PilotCode, "002"); Assert.AreEqual(raceInfo.Ranking[1].PilotName, "Pilot 2"); Assert.AreEqual(raceInfo.Ranking[1].BestLapNumber, 1); Assert.AreEqual(raceInfo.BestLap.PilotCode, "001"); Assert.AreEqual(raceInfo.BestLap.PilotName, "Pilot 1"); Assert.AreEqual(raceInfo.BestLap.BestLapNumber, 2); }
public void GetBestLapByFirstPilot() { //Arrange ComputeRankingKartRaceService computeService = new ComputeRankingKartRaceService(); List <KartLap> kartLaps = new List <KartLap>(); kartLaps.Add(new KartLap() { PilotCode = "001", PilotName = "Pilot 1", LapNumber = 1, Time = new TimeSpan(0, 1, 1, 1, 1234), LapTime = new TimeSpan(0, 1, 1, 1, 1234), LapAverageSpeed = 10 }); kartLaps.Add(new KartLap() { PilotCode = "002", PilotName = "Pilot 2", LapNumber = 1, Time = new TimeSpan(0, 1, 1, 1, 1222), LapTime = new TimeSpan(0, 1, 1, 1, 1222), LapAverageSpeed = 10 }); kartLaps.Add(new KartLap() { PilotCode = "001", PilotName = "Pilot 1", LapNumber = 2, Time = new TimeSpan(0, 1, 1, 1, 1220), LapTime = new TimeSpan(0, 1, 1, 1, 1220), LapAverageSpeed = 10 }); kartLaps.Add(new KartLap() { PilotCode = "002", PilotName = "Pilot 2", LapNumber = 2, Time = new TimeSpan(0, 1, 1, 1, 1233), LapTime = new TimeSpan(0, 1, 1, 1, 1233), LapAverageSpeed = 10 }); //Act computeService.ComputeRanking(kartLaps); KartRaceResult result = computeService.GetBestLap(); //Assert Assert.AreEqual(result.PilotCode, "001"); Assert.AreEqual(result.PilotName, "Pilot 1"); Assert.AreEqual(result.BestLapNumber, 2); }
static void Main(string[] args) { var dataParser = new DataExtractedParser(); var positionalExtractorService = new PositionalDataLineExtrator <KartLap>(dataParser); var extractService = new ExtractKartRaceFileService(positionalExtractorService); var computeService = new ComputeRankingKartRaceService(); var outputService = new OutputKartRaceInformationService(); KartRaceInformation raceInfo = new KartRaceInformation(extractService, computeService, outputService); raceInfo.ExtractDataFromFile("data.txt"); raceInfo.ComputeRanking(); raceInfo.GetBestLap(); raceInfo.PrintOutput(); Console.WriteLine("\nPress any key to exit"); Console.ReadKey(); }
public void RankingLapsBySecondPilot() { //Arrange ComputeRankingKartRaceService computeService = new ComputeRankingKartRaceService(); List <KartLap> kartLaps = new List <KartLap>(); kartLaps.Add(new KartLap() { PilotCode = "001", PilotName = "Pilot 1", LapNumber = 1, Time = new TimeSpan(0, 1, 1, 1, 1234), LapTime = new TimeSpan(0, 1, 1, 1, 1234), LapAverageSpeed = 10 }); kartLaps.Add(new KartLap() { PilotCode = "002", PilotName = "Pilot 2", LapNumber = 1, Time = new TimeSpan(0, 1, 1, 1, 1222), LapTime = new TimeSpan(0, 1, 1, 1, 1222), LapAverageSpeed = 10 }); kartLaps.Add(new KartLap() { PilotCode = "001", PilotName = "Pilot 1", LapNumber = 2, Time = new TimeSpan(0, 1, 1, 1, 1223), LapTime = new TimeSpan(0, 1, 1, 1, 1223), LapAverageSpeed = 10 }); kartLaps.Add(new KartLap() { PilotCode = "002", PilotName = "Pilot 2", LapNumber = 2, Time = new TimeSpan(0, 1, 1, 1, 1233), LapTime = new TimeSpan(0, 1, 1, 1, 1233), LapAverageSpeed = 10 }); //Act List <KartRaceResult> result = computeService.ComputeRanking(kartLaps); //Assert Assert.AreEqual(result.Count, 2); Assert.AreEqual(result[0].PilotCode, "002"); Assert.AreEqual(result[0].PilotName, "Pilot 2"); Assert.AreEqual(result[0].BestLapNumber, 1); Assert.AreEqual(result[1].PilotCode, "001"); Assert.AreEqual(result[1].PilotName, "Pilot 1"); Assert.AreEqual(result[1].BestLapNumber, 2); }