Exemple #1
0
 def setUp(self):
     '''
     Sets up a simple Metro object to run tests on
     '''
     self.metro = Metro("NYC", "New York City", "United States", 
                   "North America", 69, {"W": 69, "N": 69}, 
                   6969696969, 455, {"testRoute": None})
Exemple #2
0
    def setUp(self):
        self.listOfMetros = {}  #Where Key is the country's code
        self.listOfRoutes = []  #A list of the routes
        self.userQuery = ""  #The buffer that holds the user input
        self.data = json.loads(open('../map_data.json').read()
                               )  #The data that is read from the .json file

        self.cityData = self.data["metros"]  #A list of the metro data
        self.routeData = self.data["routes"]  #A list of the route data
        for x in range(0, len(self.cityData)):
            self.listOfMetros[self.cityData[x]['code']] = Metro(
                self.cityData[x]['code'], self.cityData[x]['name'],
                self.cityData[x]['country'], self.cityData[x]['continent'],
                self.cityData[x]['timezone'], self.cityData[x]['coordinates'],
                self.cityData[x]['population'], self.cityData[x]['region'], {})
        for x in range(0, len(self.routeData)):
            route = Route(self.listOfMetros[self.routeData[x]['ports'][0]],
                          self.listOfMetros[self.routeData[x]['ports'][1]],
                          self.routeData[x]['distance'])
            returnRoute = Route(
                self.listOfMetros[self.routeData[x]['ports'][1]],
                self.listOfMetros[self.routeData[x]['ports'][0]],
                self.routeData[x]['distance'])
            self.listOfRoutes.append(route)

            #Add the route to the specific city
            self.listOfMetros[self.routeData[x]['ports'][0]].routes[
                self.routeData[x]['ports'][1]] = route
            self.listOfMetros[self.routeData[x]['ports'][1]].routes[
                self.routeData[x]['ports'][0]] = returnRoute
Exemple #3
0
 def makeListOfMetros(self):
     '''
     Compiles the dictionary of metros by iterating through the city_data list parsed from the json file
     ''' 
     for x in range (0,len(self.city_data)):
         self.list_of_metros[self.city_data[x]['code']] = Metro(self.city_data[x]['code'], self.city_data[x]['name'], self.city_data[x]['country'], 
                                                   self.city_data[x]['continent'], self.city_data[x]['timezone'], self.city_data[x]['coordinates'], 
                                                   self.city_data[x]['population'], self.city_data[x]['region'], {})
Exemple #4
0
 def add_city(self):
     '''
     Adds a city (node) to the graph
     '''
     code = raw_input("What is the metro's code? ")
     name = raw_input("What is the metro's name? ")
     country = raw_input("Where country is the metro in? ")
     continent = raw_input("What continent is the metro in? ")
     timezone = raw_input("What timezone is the metro in? ")
     coordOneDir = raw_input("What is the first heading of the coordinate? ")
     coordOneVal = raw_input("What is the degree of the first heading? ")
     coordTwoDir = raw_input("What is the second heading of the coordinate? ")
     coordTwoVal = raw_input("What is the degree of the second heading? ")
     coordinates = {coordOneDir: coordOneVal, coordTwoDir: coordTwoVal}
     population = raw_input("What is the population of the metro? ")
     region = raw_input("What is the region of the metro? ")
     city = Metro(code, name, country, continent, timezone, coordinates, population, region, {})
     self.list_of_metros[city.name] = city
     city.printInformation()
 def test_graph(self):
     origin = "Hong Kong"
     travel_list = ["Taipei", "Hong Kong"]
     '''
     Tests the calculations
     '''
     self.assertEquals(524.55,
                       self.CSAir.calculate_cost(origin, travel_list))
     self.assertEquals(1614,
                       self.CSAir.calculate_distance(origin, travel_list))
     self.assertEquals(233.12,
                       self.CSAir.calculate_time(origin, travel_list))
     '''
     Tests add city
     '''
     city = Metro("ABC", "Jersey City", "United States", "North America", 3,
                  {
                      "N": 25,
                      "W": 14
                  }, 41232312, 11, {})
     self.CSAir.list_of_metros[city.name] = city
     self.assertEquals(True,
                       self.CSAir.list_of_metros.has_key("Jersey City"))
     '''
     Tests remove city
     '''
     removedCity = self.CSAir.list_of_metros.pop("Jersey City")
     for route in removedCity.routes:
         destinationCity = removedCity.routes[route].destination
         for returnRoute in destinationCity.routes.keys():
             if returnRoute == removedCity.code:
                 del destinationCity.routes[returnRoute]
     self.CSAir.list_of_routes = [
         route for route in self.CSAir.list_of_routes
         if not (route.destination.name == "Jersey City"
                 or route.origin.name == "Jerey City")
     ]
     self.assertEquals(False,
                       self.CSAir.list_of_metros.has_key("Jersey City"))
Exemple #6
0
class TestNode(unittest.TestCase):

    def setUp(self):
        '''
        Sets up a simple Metro object to run tests on
        '''
        self.metro = Metro("NYC", "New York City", "United States", 
                      "North America", 69, {"W": 69, "N": 69}, 
                      6969696969, 455, {"testRoute": None})
        
    def testConstructor(self):
        '''
        Tests the constructor for the Metro class. Ensures that things
        are being initialized properly.
        '''
        self.assertEqual("NYC", self.metro.code)
        self.assertEqual("New York City", self.metro.name)
        self.assertEqual("United States", self.metro.country)
        self.assertEqual("North America", self.metro.continent)
        self.assertEqual(69, self.metro.timezone)
        self.assertEqual(69, self.metro.coordinates["W"])
        self.assertEqual(69, self.metro.coordinates["N"])
        self.assertEqual(6969696969, self.metro.population)
        self.assertEqual(455, self.metro.region)
        self.assertEqual(None, self.metro.routes["testRoute"])
    
    
    def testPrintInformation(self):
        '''
        Tests to make sure that a Metro has the right values in its variables
        before print statements are called on its variables to display its information
        '''
        self.assertEqual("NYC", self.metro.code)
        self.assertEqual("New York City", self.metro.name)
        self.assertEqual("United States", self.metro.country)
        self.assertEqual("North America", self.metro.continent)
        self.assertEqual(69, self.metro.timezone)
        self.assertEqual(69, self.metro.coordinates["W"])
        self.assertEqual(69, self.metro.coordinates["N"])
        self.assertEqual(6969696969, self.metro.population)
        self.assertEqual(455, self.metro.region)
        self.assertEqual(None, self.metro.routes["testRoute"])
    
    def test_set_code(self):
        self.metro.setCode("JJJ")
        self.assertEqual("JJJ", self.metro.code)
        
    def test_set_name(self):
        self.metro.setName("Chicago")
        self.assertEqual("Chicago", self.metro.name)
    
    def test_set_country(self):
        self.metro.setCountry("China")
        self.assertEqual("China", self.metro.country)
        
    def test_set_continent(self):
        self.metro.setContinent("Australia")
        self.assertEqual("Australia", self.metro.continent)
    
    def test_set_timezone(self):
        self.metro.setTimezone(5)
        self.assertEqual(5, self.metro.timezone)
        
    def test_set_coordinates(self):
        self.metro.coordinates = {"N": 35, "S": 15}
        self.assertEqual(True, self.metro.coordinates.has_key("N"))
        self.assertEqual(True, self.metro.coordinates.has_key("S"))
        self.assertEqual(35, self.metro.coordinates["N"])
        self.assertEqual(15, self.metro.coordinates["S"])
        
    def test_set_population(self):
        self.metro.setPopulation(1422322)
        self.assertEqual(1422322, self.metro.population)
        
    def test_set_region(self):
        self.metro.setRegion(123)
        self.assertEqual(123, self.metro.region)