public async Task TestFindShortestRouteBetweenAsynch() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var routes = new RoutesDijkstra(cities); routes.ReadRoutes(LinksTestFile); // do synchronous execution linksExpected = routes.FindShortestRouteBetween("Basel", "Zürich", TransportModes.Rail); // do asynchronous execution linksActual = await routes.GoFindShortestRouteBetween("Basel", "Zürich", TransportModes.Rail); // not test the results Assert.IsNotNull(linksActual); Assert.AreEqual(linksExpected.Count, linksActual.Count); for (int i = 0; i < linksActual.Count; i++) { Assert.AreEqual(linksExpected[i].FromCity, linksActual[i].FromCity); Assert.AreEqual(linksExpected[i].ToCity, linksActual[i].ToCity); } }
public async Task TestFindShortestRouteBetweenAsyncProgress() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var routes = new RoutesDijkstra(cities); routes.ReadRoutes(LinksTestFile); var progress = new Progress <string>(ProgressReport); // do asynchronous execution linksActual = await routes.FindShortestRouteBetweenAsync("Basel", "Zürich", TransportModes.Rail, progress); await Task.Delay(1000); // the following assert has to be made after the routine routine returns // assert, that in minimum 5 progress calls are made Assert.IsTrue(progCount >= 5, "less than 5 progress calls"); // See comment in ProgressReport method Assert.IsFalse(doneMissing, String.Format("the progress message \"{0}\" does not contain \"done\"", failingMessage)); }
public void TestTask4FindRoutes() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var expectedLinks = new List <Link>(); expectedLinks.Add(new Link(new City("Zürich", "Switzerland", 7000, 1, 2), new City("Aarau", "Switzerland", 7000, 1, 2), 0)); expectedLinks.Add(new Link(new City("Aarau", "Switzerland", 7000, 1, 2), new City("Liestal", "Switzerland", 7000, 1, 2), 0)); expectedLinks.Add(new Link(new City("Liestal", "Switzerland", 7000, 1, 2), new City("Basel", "Switzerland", 7000, 1, 2), 0)); var routes = new RoutesDijkstra(cities); routes.ReadRoutes(LinksTestFile); Assert.AreEqual(11, cities.Count); // test available cities var links = routes.FindShortestRouteBetween("Zürich", "Basel", TransportModes.Rail); Assert.IsNotNull(links); Assert.AreEqual(expectedLinks.Count, links.Count); for (var i = 0; i < links.Count; i++) { Assert.AreEqual(expectedLinks[i].FromCity.Name, links[i].FromCity.Name); Assert.AreEqual(expectedLinks[i].ToCity.Name, links[i].ToCity.Name); } links = routes.FindShortestRouteBetween("doesNotExist", "either", TransportModes.Rail); Assert.IsNull(links); }
public static void Start() { Cities cities = new Cities(); cities.ReadCities("citiesTestDataLab2.txt"); Routes route = new RoutesDijkstra(cities); route.ReadRoutes("linksTestDataLab3.txt"); /* * var actions = new Action[3]; * * for (var i = 0; i < actions.Length; i++) * { * actions[i] = () => Console.Write(i); * } * * foreach (var a in actions) * { * a(); * } */ Console.ReadKey(); }
public void TestTask2EventWithNoObserver() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var routes = new RoutesDijkstra(cities); // must run without exception routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Rail); }
public void TestRoutesReadLinks() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var routes = new RoutesDijkstra(cities); var count = routes.ReadRoutes(LinksTestFile); Assert.AreEqual(7, count); }
public void TestTask2FiredEvents() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var routes = new RoutesDijkstra(cities); // test available cities routes.RouteRequestEvent += TestForCorrectEventArgsWithFoundCities; routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Rail); // test not existing cities routes.RouteRequestEvent -= TestForCorrectEventArgsWithFoundCities; routes.RouteRequestEvent += TestForCorrectEventArgsWithNotFoundCities; routes.FindShortestRouteBetween("doesNotExist", "either", TransportModes.Rail); }
public void TestTask3_CompareAlgorithms() { Cities cities = new Cities(); cities.ReadCities(@"citiesTestDataLab11.txt"); Assert.AreEqual(6372, cities.Count); Routes routes = new RoutesDijkstra(cities); long dijkstraTime = FindRoutes(routes); routes = new RoutesFloydWarshall(cities); routes.ExecuteParallel = false; long floydWarshallTime = FindRoutes(routes); // the sequentiel floydWarshal should be slower Assert.IsTrue(floydWarshallTime > dijkstraTime, "FloydWarshal should be slower"); }
public void TestFindCitiesByTransportMode() { Cities cities = new Cities(); cities.ReadCities(@"citiesTestDataLab3.txt"); var routes = new RoutesDijkstra(cities); routes.ReadRoutes(@"linksTestDataLab3.txt"); City[] citiesByMode = routes.FindCities(TransportModes.Rail); Assert.AreEqual(11, citiesByMode.Count()); // there must be no cities City[] emptyCitiesByMode = routes.FindCities(TransportModes.Bus); Assert.AreEqual(0, emptyCitiesByMode.Count()); }
public void TestRequestWatcher() { var reqWatch = new RouteRequestWatcher(); var cities = new Cities(); cities.ReadCities(CitiesTestFile); var routes = new RoutesDijkstra(cities); routes.RouteRequestEvent += reqWatch.LogRouteRequests; routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Rail); routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Rail); routes.FindShortestRouteBetween("Basel", "Bern", TransportModes.Rail); Assert.AreEqual(reqWatch.GetCityRequests("Zürich"), 2); Assert.AreEqual(reqWatch.GetCityRequests("Bern"), 1); Assert.AreEqual(reqWatch.GetCityRequests("Basel"), 0); }
public void TestTaskReadRoutes() { var cities = new Cities(); cities.ReadCities(CitiesTestFile); var expectedLinks = new List <Link>(); expectedLinks.Add(new Link(new City("Zürich", "Switzerland", 7000, 1, 2), new City("Aarau", "Switzerland", 7000, 1, 2), 0)); expectedLinks.Add(new Link(new City("Aarau", "Switzerland", 7000, 1, 2), new City("Liestal", "Switzerland", 7000, 1, 2), 0)); expectedLinks.Add(new Link(new City("Liestal", "Switzerland", 7000, 1, 2), new City("Basel", "Switzerland", 7000, 1, 2), 0)); var routes = new RoutesDijkstra(cities); var count = routes.ReadRoutes(LinksTestFile); Assert.AreEqual(10, count); Assert.AreEqual(10, routes.Count); }
static void Main(string[] args) { Version version = Assembly.GetEntryAssembly().GetName().Version; Console.WriteLine("Welcome to RoutePlanner ({0})", version); WayPoint wayPoint = new WayPoint("Windisch", 47.479319847061966, 8.212966918945312); Console.WriteLine(wayPoint.ToString()); WayPoint wpBern = new WayPoint("Bern", 46.9472221, 7.451202500000022); WayPoint wpTripolis = new WayPoint("Tripolis", 59.86062519999999, 17.650885199999948); Console.WriteLine("Distanz Bern-Tripolis: {0}km", wpBern.Distance(wpTripolis)); City cBern = new City("Bern", "Schweiz", 75000, 47.479319847061966, 8.212966918945312); City c0 = new City("Mumbai", "India", 12383146, 18.96, 72.82); string serializedCity = string.Empty; using (StringWriter outstream = new StringWriter()) { SimpleObjectWriter writer = new SimpleObjectWriter(outstream); writer.Next(cBern); serializedCity = outstream.ToString(); } Console.WriteLine(serializedCity); using (StringReader inStream = new StringReader(serializedCity)) { SimpleObjectReader reader = new SimpleObjectReader(inStream); object o = reader.Next(); } WayPoint wp = c0.Location; Cities c = new Cities(); c.ReadCities("citiesTestDataLab2.txt"); c.FindNeighbours(wp, 2000); c.ReadCities("citiesTestDataLab2.txt"); var routes = new RoutesDijkstra(c); var reqWatch = new RouteRequestWatcher(); routes.RouteRequestEvent += reqWatch.LogRouteRequests; routes.FindShortestRouteBetween("Mumbai", "India", TransportModes.Rail); routes.FindShortestRouteBetween("Mumbai", "India", TransportModes.Rail); routes.FindShortestRouteBetween("India", "Mumbai", TransportModes.Rail); Console.WriteLine("City found: {0}", c.FindCity("Mumbai").Name); c.ReadCities("citiesTestDataLab4.txt"); Routes r = new RoutesDijkstra(c); r.RouteRequestEvent += reqWatch.LogRouteRequests; r.ReadRoutes("linksTestDataLab4.txt"); List <Link> l = r.FindShortestRouteBetween("Zürich", "Winterthur", TransportModes.Rail); foreach (Link link in l) { Console.WriteLine("from {0} to {1} in {2}", link.FromCity.Name, link.ToCity.Name, link.Distance); } Console.ReadKey(); City zurich = c.FindCity("Zürich"); City winterthur = c.FindCity("Winterthur"); ExcelExchange export = new ExcelExchange(); export.WriteToFile("Test.xls", zurich, winterthur, l); }
static void Main(string[] args) { Console.WriteLine("Welcome to RoutePlanner (" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + ")"); Console.WriteLine(); var wayPoint = new WayPoint("Windisch", 47.479319847061966, 8.212966918945312); var wpBern = new WayPoint("Bern", 46.9479222, 7.4446085); var wpTripolis = new WayPoint("Tripolis", 32.8084124, 13.1509672); Console.WriteLine(wayPoint.ToString()); Console.WriteLine(wpBern.ToString()); Console.WriteLine(wpTripolis.ToString()); Console.WriteLine("Distance: {0}", wpBern.Distance(wpTripolis)); var citiesLab2 = new Cities(); citiesLab2.ReadCities("data\\citiesTestDataLab2.txt"); var bern = new WayPoint("Bern", 46.95, 7.44); var tripolis = new WayPoint("Tripolis", 32.876174, 13.187507); double actual = bern.Distance(tripolis); Console.WriteLine(); var findCity = citiesLab2.FindCity("Bern"); if (findCity != null) { Console.WriteLine("City {0} was found.", findCity.Name); } else { Console.WriteLine("City not found."); } findCity = citiesLab2.FindCity("Dilli"); if (findCity != null) { Console.WriteLine("City {0} was found.", findCity.Name); } else { Console.WriteLine("City not found."); } Console.WriteLine(); Console.WriteLine("Test Routes"); var citiesLab3 = new Cities(); citiesLab3.ReadCities("data\\citiesTestDataLab3.txt"); var reqWatcher = new RouteRequestWatcher(); var routes = new RoutesDijkstra(citiesLab3); routes.RouteRequestEvent += reqWatcher.LogRouteRequests; routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Bus); routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Bus); routes.ReadRoutes("data\\linksTestDataLab3.txt"); Console.WriteLine(); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
static void Main(string[] args) { //Lab1 Aufgabe 1 Console.WriteLine("Welcome to RoutePlanner (Version " + Assembly.GetExecutingAssembly().GetName().Version + ")"); //Lab1 Aufgabe 2d var wayPoint = new WayPoint("Windisch", 47.479319847061966, 8.212966918945312); Console.WriteLine("{0}: {1}/{2}", wayPoint.Name, wayPoint.Latitude, wayPoint.Longitude); //Lab2 Aufgabe 1a Console.WriteLine(wayPoint); var wayPoint1 = new WayPoint("", 47.479319847061966, 8.212966918945312); var wayPoint2 = new WayPoint(null, 47.479319847061966, 8.212966918945312); Console.WriteLine(wayPoint1); Console.WriteLine(wayPoint2); //Lab2 Aufgabe 1b var bern = new WayPoint("Bern", 46.948342, 7.442935); var tripolis = new WayPoint("Tripolis", 32.808858, 13.098922); Console.WriteLine(bern.Distance(tripolis)); Console.WriteLine(tripolis.Distance(bern)); //Lab2 Aufgabe 2a new City("Bern", "Schweiz", 75000, 47.479319847061966, 8.212966918945312); //Lab2 Aufgabe 2b Cities cities = new Cities(); Console.WriteLine("New cities: " + cities.ReadCities("citiesTestDataLab2.txt")); //Lab2 Aufgabe 2c /* * for (int i = 0; i < cities.Count;i++ ) * { * Console.WriteLine(cities[i].Name + ", " + cities[i].Country + ", " + cities[i].Population + ", " + cities[i].Location.Latitude + ", " + cities[i].Location.Longitude + ); + } */ //Lab2 Aufgabe 2d List <City> neighbours = cities.FindNeighbours(cities[1].Location, (double)17000.0); for (int i = 0; i < neighbours.Count; i++) { Console.WriteLine(neighbours[i].Name + ", " + neighbours[i].Country + ", " + neighbours[i].Population + ", " + neighbours[i].Location.Latitude + ", " + neighbours[i].Location.Longitude ); } //Lab3 Aufgabe 1 City city = cities.FindCity("shanghai"); Console.WriteLine("Name: " + city.Name + ", " + city.Country + ", " + city.Population + ", " + city.Location.Latitude + ", " + city.Location.Longitude ); //Lab3 Aufgabe 2c var reqWatch = new RouteRequestWatcher(); var routeCities = new Cities(); cities.ReadCities("citiesTestDataLab2.txt"); var routes = new RoutesDijkstra(routeCities); routes.RouteRequestEvent += reqWatch.LogRouteRequests; routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Rail); routes.FindShortestRouteBetween("Bern", "Zürich", TransportModes.Rail); routes.FindShortestRouteBetween("Basel", "Bern", TransportModes.Rail); const string cityString1 = "Instance of Fhnw.Ecnf.RoutePlanner.RoutePlannerLib.City\r\nName=\"Aarau\"\r\nCountry=\"Switzerland\"\r\nPopulation=10\r\nLocation is a nested object...\r\nInstance of Fhnw.Ecnf.RoutePlanner.RoutePlannerLib.WayPoint\r\nName=\"Aarau\"\r\nLongitude=2.2\r\nLatitude=1.1\r\nEnd of instance\r\nEnd of instance\r\n"; const string cityString2 = "Instance of Fhnw.Ecnf.RoutePlanner.RoutePlannerLib.City\r\nName=\"Bern\"\r\nCountry=\"Switzerland\"\r\nPopulation=10\r\nLocation is a nested object...\r\nInstance of Fhnw.Ecnf.RoutePlanner.RoutePlannerLib.WayPoint\r\nName=\"Bern\"\r\nLongitude=2.2\r\nLatitude=1.1\r\nEnd of instance\r\nEnd of instance\r\n"; const string cityString = cityString1 + cityString2; var expectedCity1 = new City("Aarau", "Switzerland", 10, 1.1, 2.2); var expectedCity2 = new City("Bern", "Switzerland", 10, 1.1, 2.2); var stream = new StringReader(cityString); var reader = new SimpleObjectReader(stream); var city1 = reader.Next() as City; var city2 = reader.Next() as City; routes.ReadRoutes("linksTestDataLab3.txt"); routes.ReadRoutes("linksTestDa.txt"); Console.ReadLine(); }