public KeyValuePairCollection Map(string line) { var data = line.Split(','); if (LineIsFromAccidentStats(data)) { //if (VehicleWasLessThanOneYearOldAtTimeOfAccident(data)) //{ var manufacturer = data[22].ToUpper(); var accidentStats = new AccidentStats { NoOfAccidents = 1 }; var mostAccidentProneKvp = new MostAccidentProneKvp(manufacturer, accidentStats); return(new KeyValuePairCollection { mostAccidentProneKvp }); //} } else { var manufacturer = data[0].ToUpper(); var noOfRegistrations = ParseDirtyInt(data[2]); var accidentStats = new AccidentStats { NoOfCarsRegistered = noOfRegistrations }; var mostAccidentProneKvp = new MostAccidentProneKvp(manufacturer, accidentStats); return(new KeyValuePairCollection { mostAccidentProneKvp }); } return(new KeyValuePairCollection()); }
private AccidentStats ReduceAccidentStats(AccidentStats stats1, AccidentStats stats2) { var newNoOfAccidents = stats1.NoOfAccidents + stats2.NoOfAccidents; var newNoOfCarsRegistered = stats1.NoOfCarsRegistered + stats2.NoOfCarsRegistered; return(new AccidentStats { NoOfAccidents = newNoOfAccidents, NoOfCarsRegistered = newNoOfCarsRegistered, RegistrationsPerAccident = (double)newNoOfCarsRegistered / newNoOfAccidents }); }