def test_finalize(self):
     node_profile = NodeProfileMultiObjective(label_class=LabelTimeWithBoardingsCount, dep_times=[10])
     own_label = LabelTimeWithBoardingsCount(departure_time=10, arrival_time_target=20, n_boardings=0, first_leg_is_walk=False)
     self.assertTrue(node_profile.update([own_label]))
     neighbor_label = LabelTimeWithBoardingsCount(departure_time=15, arrival_time_target=18, n_boardings=2, first_leg_is_walk=False)
     assert(len(node_profile.get_labels_for_real_connections()) == 1)
     node_profile.finalize([[neighbor_label]], [3])
     assert (len(node_profile.get_final_optimal_labels()) == 2)
     self.assertTrue(any(map(lambda el: el.departure_time == 12, node_profile.get_final_optimal_labels())))
 def test_pareto_optimality_with_transfers_only(self):
     LabelClass = LabelVehLegCount
     node_profile = NodeProfileMultiObjective(dep_times=[5, 6, 7], label_class=LabelClass)
     pt3 = LabelClass(departure_time=5, n_vehicle_legs=0, last_leg_is_walk=False)
     pt2 = LabelClass(departure_time=6, n_vehicle_legs=1, last_leg_is_walk=False)
     pt1 = LabelClass(departure_time=7, n_vehicle_legs=2, last_leg_is_walk=False)
     self.assertTrue(node_profile.update([pt1]))
     self.assertTrue(node_profile.update([pt2]))
     self.assertTrue(node_profile.update([pt3]))
     node_profile.finalize()
     self.assertEqual(1, len(node_profile.get_final_optimal_labels()))