示例#1
0
        public void TestFindNeighbours()
        {
            var cities = new Cities();

            cities.ReadCities(citiesTestFile);

            var loc = cities[0].Location;

            IEnumerable <City> neighbors = cities.FindNeighbours(loc, 2000);

            //verifies if the correct cities were found
            Assert.AreEqual(4, neighbors.Count());
            Assert.IsTrue(neighbors.Any(c => c.Name == "Mumbai"));
            Assert.IsTrue(neighbors.Any(c => c.Name == "Karachi"));
            Assert.IsTrue(neighbors.Any(c => c.Name == "Dhaka"));
            Assert.IsTrue(neighbors.Any(c => c.Name == "Dilli"));
        }
示例#2
0
        public void TestFindNeighbours()
        {
            var cities = new Cities();

            cities.ReadCities(CitiesTestFile);

            var loc = cities[0].Location;

            var neighbors = cities.FindNeighbours(loc, 2000);

            Assert.AreEqual(4, neighbors.Count);

            //verifies if the correct cities were found
            Assert.IsNotNull(neighbors.First(c => c.Name == "Mumbai"));
            Assert.IsNotNull(neighbors.First(c => c.Name == "Karachi"));
            Assert.IsNotNull(neighbors.First(c => c.Name == "Dhaka"));
            Assert.IsNotNull(neighbors.First(c => c.Name == "Dilli"));
        }
示例#3
0
        public void TestFindNeighboursSorted()
        {
            var cities = new Cities();

            cities.ReadCities(citiesTestFile);

            var loc = cities[0].Location;

            var neighbors = cities.FindNeighbours(loc, 2000).ToArray();

            //verify the correct order (sorted  by distance)
            Assert.AreEqual(4, neighbors.Length);
            Assert.AreEqual("Mumbai", neighbors[0].Name);
            Assert.AreEqual("Karachi", neighbors[1].Name);
            Assert.IsTrue(loc.Distance(neighbors[0].Location) <= loc.Distance(neighbors[1].Location));
            Assert.AreEqual("Dilli", neighbors[2].Name);
            Assert.IsTrue(loc.Distance(neighbors[1].Location) <= loc.Distance(neighbors[2].Location));
            Assert.AreEqual("Dhaka", neighbors[3].Name);
            Assert.IsTrue(loc.Distance(neighbors[2].Location) <= loc.Distance(neighbors[3].Location));
        }
        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)
        {
            //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();
        }