public void TestDistanceBetweenPoints() { StopResolverConfig conf = new StopResolverConfig() { Time = 5, GroupRadius = 30, MinStopAccuracy = 400, StopMergeRadius = 50, StopMergeMaxTravelRadius = 200, }; StopResolver stopResolver = new StopResolver(conf); PositionEntry p1 = new PositionEntry() { Latitude = 52.083333, Longitude = 5.116667 }; PositionEntry p2 = new PositionEntry() { Latitude = 52.083333, Longitude = 4.316667 }; double distance = stopResolver.DistanceBetweenPoints(p1, p2); Assert.Equal(54712, Math.Round(distance)); }
public void TestStopNoStops() { var records = LoadPositionsFromCsv("position_entries_public_sample.csv"); StopResolverConfig conf = new StopResolverConfig() { Time = 4, GroupRadius = 20, MinStopAccuracy = 400, StopMergeRadius = 50, StopMergeMaxTravelRadius = 200, }; StopResolver stopResolver = new StopResolver(conf); IList <ResolvedStop> stops = stopResolver.ResolveStops(records); foreach (ResolvedStop s in stops) { Console.WriteLine(s); } Assert.Equal(0, stops.Count); }
private static void ReadCsv() { IEnumerable <ResolvedStop> stops = null; try { // Open the text file using a stream reader. using (StreamReader sr = new StreamReader("data.csv")) { var csv = new CsvReader(sr); csv.Configuration.RegisterClassMap <PositionEntryMap>(); var records = csv.GetRecords <PositionEntry>().ToList(); StopResolverConfig conf = new StopResolverConfig() { Time = 4, GroupRadius = 20, MinStopAccuracy = 400, StopMergeRadius = 50, StopMergeMaxTravelRadius = 200, }; StopResolver stopResolver = new StopResolver(conf); stops = stopResolver.ResolveStops(records); Console.WriteLine($"Stops found: {stops.Count()}"); } using (StreamWriter textWriter = new StreamWriter("export.csv")) using (CsvWriter csvWriter = new CsvWriter(textWriter)) { csvWriter.Configuration.RegisterClassMap <ResolvedStopMap>(); csvWriter.Configuration.QuoteAllFields = true; csvWriter.WriteRecords(stops); } } catch (Exception e) { Console.WriteLine("An error occurred:"); Console.WriteLine(e.Message); } }