Exemple #1
0
 def test_routes_dataframe_closest_stops_returns_closest_stop(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=1, longitude=1, id=1))
     handler.add_stop(MapLocation(latitude=2, longitude=2, id=2))
     handler.add_stop(MapLocation(latitude=3, longitude=3, id=3))
     handler.add_route(address=1, stop=2, distance=100, time=100)
     handler.add_route(address=1, stop=3, distance=50, time=50)
     df = handler.routes_dataframe_closest_stops()
     self.assertEqual(1, df.shape[0], "should be 1 output row")
     self.assertEqual(1, df.ix[0, 'address_latitude'],
                      'address should have latitude of 1')
     self.assertEqual(1, df.ix[0, 'address_longitude'],
                      'address should have longitude of 1')
     self.assertEqual(
         3, df.ix[0, 'stop_latitude'],
         'the stop with latitude of 3 should have been '
         'returned since it had the smallest distance')
     self.assertEqual(
         3, df.ix[0, 'stop_longitude'],
         'the stop with longitude of 3 should have been '
         'returned since it had the smallest distance')
     self.assertEqual(
         50, df.ix[0, 'distance'],
         "the route with the lowest distance should be"
         "returned in the output dataframe")
     self.assertEqual(
         50, df.ix[0, 'time'],
         "the route the with lowest distance's time should be"
         "returned in the output dataframe")
 def test_routes_dataframe_closest_stops_returns_closest_stop(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=1, longitude=1, id=1))
     handler.add_stop(MapLocation(latitude=2, longitude=2, id=2))
     handler.add_stop(MapLocation(latitude=3, longitude=3, id=3))
     handler.add_route(address=1, stop=2, distance=100, time=100)
     handler.add_route(address=1, stop=3, distance=50, time=50)
     df = handler.routes_dataframe_closest_stops()
     self.assertEqual(1, df.shape[0], "should be 1 output row")
     self.assertEqual(1, df.ix[0, 'address_latitude'],
                      'address should have latitude of 1')
     self.assertEqual(1, df.ix[0, 'address_longitude'],
                      'address should have longitude of 1')
     self.assertEqual(3, df.ix[0, 'stop_latitude'],
                      'the stop with latitude of 3 should have been '
                      'returned since it had the smallest distance')
     self.assertEqual(3, df.ix[0, 'stop_longitude'],
                      'the stop with longitude of 3 should have been '
                      'returned since it had the smallest distance')
     self.assertEqual(50, df.ix[0, 'distance'],
                      "the route with the lowest distance should be"
                      "returned in the output dataframe")
     self.assertEqual(50, df.ix[0, 'time'],
                      "the route the with lowest distance's time should be"
                      "returned in the output dataframe")
 def test_add_route_adds_route(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.add_address(location=MapLocation(latitude=5, longitude=5))
     handler.add_stop(location=MapLocation(latitude=2, longitude=2))
     handler.add_route(address=1, stop=1, distance=10, time=20)
     c = handler.conn.cursor()
     c.execute("SELECT * FROM routes")
     self.assertEqual((1, 1, 1, 10, 20), c.fetchone())
Exemple #4
0
 def test_add_route_adds_route(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.add_address(location=MapLocation(latitude=5, longitude=5))
     handler.add_stop(location=MapLocation(latitude=2, longitude=2))
     handler.add_route(address=1, stop=1, distance=10, time=20)
     c = handler.conn.cursor()
     c.execute("SELECT * FROM routes")
     self.assertEqual((1, 1, 1, 10, 20), c.fetchone())
Exemple #5
0
 def test_routes_dataframe_has_correct_values(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=11, longitude=50, id=11))
     handler.add_stop(MapLocation(latitude=-10, longitude=3, id=800))
     handler.add_route(address=11, stop=800, distance=10000, time=50000)
     df = handler.routes_dataframe()
     self.assertEqual(1, df.shape[0], "only one row should be output")
     self.assertEqual(11, df.ix[0, 'address_latitude'],
                      'incorrect address latitude output')
     self.assertEqual(50, df.ix[0, 'address_longitude'],
                      'incorrect address longitude output')
     self.assertEqual(-10, df.ix[0, 'stop_latitude'],
                      'incorrect stop latitude output')
     self.assertEqual(3, df.ix[0, 'stop_longitude'],
                      'incorrect stop longitude output')
     self.assertEqual(10000, df.ix[0, 'distance'],
                      'incorrect distance output')
     self.assertEqual(50000, df.ix[0, 'time'], 'incorrect time output')
 def test_routes_dataframe_has_correct_values(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=11, longitude=50, id=11))
     handler.add_stop(MapLocation(latitude=-10, longitude=3, id=800))
     handler.add_route(address=11, stop=800, distance=10000, time=50000)
     df = handler.routes_dataframe()
     self.assertEqual(1, df.shape[0], "only one row should be output")
     self.assertEqual(11, df.ix[0, 'address_latitude'],
                      'incorrect address latitude output')
     self.assertEqual(50, df.ix[0, 'address_longitude'],
                      'incorrect address longitude output')
     self.assertEqual(-10, df.ix[0, 'stop_latitude'],
                      'incorrect stop latitude output')
     self.assertEqual(3, df.ix[0, 'stop_longitude'],
                      'incorrect stop longitude output')
     self.assertEqual(10000, df.ix[0, 'distance'],
                      'incorrect distance output')
     self.assertEqual(50000, df.ix[0, 'time'],
                      'incorrect time output')
 def test_routes_dataframe_only_grabs_routes_no_dangling_locations(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=1, longitude=1, id=1))
     handler.add_address(MapLocation(latitude=2, longitude=2, id=2))
     handler.add_address(MapLocation(latitude=3, longitude=3, id=3))
     handler.add_stop(MapLocation(latitude=11, longitude=11, id=11))
     handler.add_stop(MapLocation(latitude=12, longitude=12, id=12))
     handler.add_stop(MapLocation(latitude=13, longitude=13, id=13))
     handler.add_route(address=1, stop=11, distance=100, time=1000)
     handler.add_route(address=3, stop=13, distance=100, time=1000)
     df = handler.routes_dataframe()
     self.assertEqual(2, df.shape[0], "should be 2 output rows")
     self.assertEqual(1, df.ix[0, 'address_latitude'],
                      'incorrect address latitude output')
     self.assertEqual(3, df.ix[1, 'address_latitude'],
                      'incorrect address latitude output')
     self.assertEqual(11, df.ix[0, 'stop_latitude'],
                      'incorrect stop latitude output')
     self.assertEqual(13, df.ix[1, 'stop_latitude'],
                      'incorrect stop latitude output')
Exemple #8
0
 def test_routes_dataframe_only_grabs_routes_no_dangling_locations(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=1, longitude=1, id=1))
     handler.add_address(MapLocation(latitude=2, longitude=2, id=2))
     handler.add_address(MapLocation(latitude=3, longitude=3, id=3))
     handler.add_stop(MapLocation(latitude=11, longitude=11, id=11))
     handler.add_stop(MapLocation(latitude=12, longitude=12, id=12))
     handler.add_stop(MapLocation(latitude=13, longitude=13, id=13))
     handler.add_route(address=1, stop=11, distance=100, time=1000)
     handler.add_route(address=3, stop=13, distance=100, time=1000)
     df = handler.routes_dataframe()
     self.assertEqual(2, df.shape[0], "should be 2 output rows")
     self.assertEqual(1, df.ix[0, 'address_latitude'],
                      'incorrect address latitude output')
     self.assertEqual(3, df.ix[1, 'address_latitude'],
                      'incorrect address latitude output')
     self.assertEqual(11, df.ix[0, 'stop_latitude'],
                      'incorrect stop latitude output')
     self.assertEqual(13, df.ix[1, 'stop_latitude'],
                      'incorrect stop latitude output')
 def test_routes_dataframe_closest_stops_returns_for_many_addresses(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=1, longitude=1, id=1))
     handler.add_address(MapLocation(latitude=11, longitude=10, id=11))
     handler.add_stop(MapLocation(latitude=2, longitude=2, id=2))
     handler.add_stop(MapLocation(latitude=12, longitude=12, id=12))
     handler.add_route(address=1, stop=2, distance=1, time=1)
     handler.add_route(address=1, stop=12, distance=11, time=11)
     handler.add_route(address=11, stop=2, distance=9, time=9)
     handler.add_route(address=11, stop=12, distance=1, time=1)
     df = handler.routes_dataframe_closest_stops()
     self.assertEqual(2, df.shape[0], "should be 2 output rows since "
                                      "there are 2 addresses with routes")
     self.assertEqual(1, df.ix[0, 'distance'],
                      "distance for the first row should be 1 "
                      "since that is the shortest route distance")
    def test_output_routes_outputs_single_route(self):
        handler = DatabaseHandler('unit_test_db.sqlite3')
        handler.initialize_db()
        handler.add_address(MapLocation(latitude=3, longitude=4, id=1))
        handler.add_stop(MapLocation(latitude=9, longitude=10, id=1))
        handler.add_route(address=1, stop=1, distance=50, time=100)

        handler.output_routes(file_path='test_file.csv')
        self.assertTrue(os.path.exists('test_file.csv'),
                        'test_file.csv file not found')
        output = pd.read_csv('test_file.csv')
        self.assertNotEqual(0, output.shape[0], "no output rows in output .csv")
        self.assertEqual(3, output.ix[0, 'address_latitude'],
                         'incorrect address latitude output')
        self.assertEqual(4, output.ix[0, 'address_longitude'],
                         'incorrect address longitude output')
        self.assertEqual(9, output.ix[0, 'stop_latitude'],
                         'incorrect stop latitude output')
        self.assertEqual(10, output.ix[0, 'stop_longitude'],
                         'incorrect stop longitude output')
        self.assertEqual(50, output.ix[0, 'distance'],
                         'incorrect distance output')
        self.assertEqual(100, output.ix[0, 'time'],
                         'incorrect time output')
Exemple #11
0
    def test_output_routes_outputs_correctly_for_one_route(self):
        handler = DatabaseHandler('unit_test_db.sqlite3')
        handler.initialize_db()
        handler.add_address(MapLocation(latitude=3, longitude=4, id=1))
        handler.add_stop(MapLocation(latitude=9, longitude=10, id=1))
        handler.add_route(address=1, stop=1, distance=50, time=100)

        handler.output_routes(file_path='test_file.csv')
        self.assertTrue(os.path.exists('test_file.csv'),
                        'test_file.csv file not found')
        output = pd.read_csv('test_file.csv')
        self.assertNotEqual(0, output.shape[0],
                            "no output rows in output .csv")
        self.assertEqual(3, output.ix[0, 'address_latitude'],
                         'incorrect address latitude output')
        self.assertEqual(4, output.ix[0, 'address_longitude'],
                         'incorrect address longitude output')
        self.assertEqual(9, output.ix[0, 'stop_latitude'],
                         'incorrect stop latitude output')
        self.assertEqual(10, output.ix[0, 'stop_longitude'],
                         'incorrect stop longitude output')
        self.assertEqual(50, output.ix[0, 'distance'],
                         'incorrect distance output')
        self.assertEqual(100, output.ix[0, 'time'], 'incorrect time output')
Exemple #12
0
 def test_routes_dataframe_closest_stops_returns_for_many_addresses(self):
     handler = DatabaseHandler('unit_test_db.sqlite3')
     handler.initialize_db()
     handler.add_address(MapLocation(latitude=1, longitude=1, id=1))
     handler.add_address(MapLocation(latitude=11, longitude=10, id=11))
     handler.add_stop(MapLocation(latitude=2, longitude=2, id=2))
     handler.add_stop(MapLocation(latitude=12, longitude=12, id=12))
     handler.add_route(address=1, stop=2, distance=1, time=1)
     handler.add_route(address=1, stop=12, distance=11, time=11)
     handler.add_route(address=11, stop=2, distance=9, time=9)
     handler.add_route(address=11, stop=12, distance=1, time=1)
     df = handler.routes_dataframe_closest_stops()
     self.assertEqual(
         2, df.shape[0], "should be 2 output rows since "
         "there are 2 addresses with routes")
     self.assertEqual(
         1, df.ix[0, 'distance'], "distance for the first row should be 1 "
         "since that is the shortest route distance")