コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Lab3Test.cs プロジェクト: mariuskueng/ecnf-fs16
        public void TestRequestWatcher()
        {
            var reqWatch = new RouteRequestWatcher();

            var cities = new Cities();

            cities.ReadCities(CitiesTestFile);

            var routes = new Routes(cities);

            routes.RouteRequested += reqWatch.LogRouteRequests;

            routes.FindShortestRouteBetween("Bern", "Zürich", TransportMode.Rail);
            routes.FindShortestRouteBetween("Bern", "Zürich", TransportMode.Rail);
            routes.FindShortestRouteBetween("Basel", "Bern", TransportMode.Rail);

            Assert.AreEqual(reqWatch.GetCityRequests(cities["Zürich"]), 2);
            Assert.AreEqual(reqWatch.GetCityRequests(cities["Bern"]), 1);
            Assert.AreEqual(reqWatch.GetCityRequests(cities["Basel"]), 0);
            Assert.AreEqual(reqWatch.GetCityRequests(cities["Lausanne"]), 0);
        }
コード例 #3
0
        public void TestRequestWatcher()
        {
            var reqWatch = new RouteRequestWatcher();

            var cities = new Cities();

            cities.ReadCities(CitiesTestFile);

            var links = new Links(cities);

            // capture console output in memory stream to verify correct console output
            MemoryStream ms = new MemoryStream();

            using (StreamWriter sw = new StreamWriter(ms))
            {
                TextWriter tmp = Console.Out;
                Console.SetOut(sw);

                /* classOfEvent.Eventname += subcriberobj.Eventhandler (resonds to the event) */
                links.RouteRequested += reqWatch.LogRouteRequests;

                // FIRES EVENT 'RouteRequested'
                links.FindShortestRouteBetween("Bern", "Zürich", TransportMode.Rail);
                links.FindShortestRouteBetween("Bern", "Zürich", TransportMode.Rail);
                links.FindShortestRouteBetween("Basel", "Bern", TransportMode.Rail);

                // make sure content is written to output
                sw.Flush();


                Assert.AreEqual(reqWatch.GetCityRequests(cities["Zürich"]), 2);
                Assert.AreEqual(reqWatch.GetCityRequests(cities["Bern"]), 1);
                Assert.AreEqual(reqWatch.GetCityRequests(cities["Basel"]), 0);
                Assert.AreEqual(reqWatch.GetCityRequests(cities["Lausanne"]), 0);

                // now check
                VerifyConsoleOut(ms);
            } // IMPORTANT: close stream after test, so that memorystream is kept open for the test
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
        }