Ejemplo n.º 1
0
    def test_sort(self):
        l1 = LabelTimeAndRoute(departure_time=1,
                               arrival_time_target=1,
                               movement_duration=3,
                               first_leg_is_walk=False)
        l2 = LabelTimeAndRoute(0, 0, 0, False)
        self.assertTrue(l1 > l2)
        self.assertTrue(l1 >= l2)
        self.assertFalse(l1 < l2)
        self.assertFalse(l1 <= l2)

        l1 = LabelTimeAndRoute(0, 0, 0, False)
        l2 = LabelTimeAndRoute(0, 0, 0, False)
        self.assertTrue(l1 == l2)
        self.assertTrue(l1 >= l2)
        self.assertTrue(l1 <= l2)
        self.assertFalse(l1 != l2)

        l1 = LabelTimeAndRoute(1, 0, 10, False)
        l2 = LabelTimeAndRoute(1, 1, 10, False)
        self.assertTrue(l1 > l2)
        self.assertFalse(l1 < l2)

        l1 = LabelTimeAndRoute(1, 1, 0, False)
        l2 = LabelTimeAndRoute(1, 1, 10, False)
        self.assertTrue(l1 > l2)
        self.assertFalse(l1 < l2)

        self.assertTrue(sorted([l1, l2])[0] == l2)

        l1 = LabelTimeAndRoute(1, 1, 10, True)
        l2 = LabelTimeAndRoute(1, 1, 10, False)
        self.assertTrue(l1 < l2)
        self.assertFalse(l1 > l2)
Ejemplo n.º 2
0
    def add_fastest_path_column(self):
        print("adding fastest path column")
        cur = self.conn.cursor()
        for target in self.get_targets():
            fastest_path_journey_ids = []
            for origin in self.get_origins():
                cur.execute(
                    'SELECT departure_time, arrival_time_target, journey_id FROM journeys '
                    'WHERE from_stop_I = ? AND to_stop_I = ? '
                    'ORDER BY departure_time ASC', (origin, target))
                all_trips = cur.fetchall()
                all_labels = [
                    LabelTimeAndRoute(x[0], x[1], x[2], False)
                    for x in all_trips
                ]  #putting journey_id as movement_duration
                all_fp_labels = compute_pareto_front(all_labels,
                                                     finalization=False,
                                                     ignore_n_boardings=True)
                fastest_path_journey_ids.append(all_fp_labels)

            fastest_path_journey_ids = [(1, x.movement_duration)
                                        for sublist in fastest_path_journey_ids
                                        for x in sublist]
            cur.executemany(
                "UPDATE journeys SET fastest_path = ? WHERE journey_id = ?",
                fastest_path_journey_ids)
        self.conn.commit()
Ejemplo n.º 3
0
 def test_large_numbers_do_not_overflow(self):
     departure_time = 1475530980
     arrival_time = 1475530980
     label = LabelTimeAndRoute(departure_time=float(departure_time),
                               arrival_time_target=float(arrival_time),
                               movement_duration=0,
                               first_leg_is_walk=False)
     self.assertEqual(departure_time, label.departure_time)
     self.assertEqual(arrival_time, label.arrival_time_target)
Ejemplo n.º 4
0
 def test_dominates_ignoring_dep_time_arrival_time(self):
     labela = LabelTimeAndRoute(departure_time=1, arrival_time_target=9, movement_duration=1,
                                first_leg_is_walk=False)
     labelb = LabelTimeAndRoute(departure_time=1, arrival_time_target=10, movement_duration=1,
                                first_leg_is_walk=False)
     self.assertFalse(labelb.dominates_ignoring_dep_time(labela))
     self.assertTrue(labela.dominates_ignoring_dep_time(labelb))
Ejemplo n.º 5
0
 def test_dominates_earlier_departure_time(self):
     label2 = LabelTimeAndRoute(departure_time=1,
                                arrival_time_target=10,
                                movement_duration=0,
                                first_leg_is_walk=False)
     label5 = LabelTimeAndRoute(departure_time=0,
                                arrival_time_target=10,
                                movement_duration=0,
                                first_leg_is_walk=False)
     self.assertTrue(label2.dominates(label5))
     self.assertFalse(label5.dominates(label2))
Ejemplo n.º 6
0
 def test_does_not_dominate_same(self):
     label2 = LabelTimeAndRoute(departure_time=1,
                                arrival_time_target=10,
                                movement_duration=0,
                                first_leg_is_walk=False)
     label3 = LabelTimeAndRoute(departure_time=1,
                                arrival_time_target=10,
                                movement_duration=0,
                                first_leg_is_walk=False)
     self.assertTrue(label2.dominates(label3))
     self.assertTrue(label3.dominates(label2))
Ejemplo n.º 7
0
 def test_dominates_less_movement_duration_when_departure_time_not_the_same(
         self):
     labela = LabelTimeAndRoute(departure_time=4,
                                arrival_time_target=10,
                                movement_duration=1,
                                first_leg_is_walk=False)
     labelb = LabelTimeAndRoute(departure_time=1,
                                arrival_time_target=10,
                                movement_duration=0,
                                first_leg_is_walk=False)
     self.assertFalse(labelb.dominates(labela))
     self.assertTrue(labela.dominates(labelb))
Ejemplo n.º 8
0
 def test_duration(self):
     label1 = LabelTimeAndRoute(departure_time=0,
                                arrival_time_target=20,
                                movement_duration=1,
                                first_leg_is_walk=False)
     self.assertEqual(20, label1.duration())