def test_vehicle_with_final(self): identifier = str(0) origin = jit.Service( position=generate_one_position(), earliest=100, latest=200, duration=2, ) destination = jit.Service( position=generate_one_position(), earliest=1000, latest=2000, duration=20, ) vehicle = jit.Vehicle(identifier, origin, destination) self.assertEqual(identifier, vehicle.identifier) self.assertEqual(1, vehicle.capacity) self.assertEqual(origin, vehicle.origin) self.assertEqual(origin.position, vehicle.origin_position) self.assertEqual(origin.earliest, vehicle.origin_earliest) self.assertEqual(origin.latest, vehicle.origin_latest) self.assertEqual(origin.duration, vehicle.origin_duration) self.assertEqual(destination, vehicle.destination) self.assertEqual(destination.position, vehicle.destination_position) self.assertEqual(destination.earliest, vehicle.destination_earliest) self.assertEqual(destination.latest, vehicle.destination_latest) self.assertEqual(destination.duration, vehicle.destination_duration)
def test_distance_to(self): one_position = generate_one_position() two_position = generate_one_position() one = jit.Service(one_position) two = jit.Service(two_position) self.assertEqual(one_position.distance_to(two_position), one.distance_to(two))
def test_as_tuple(self): identifier = str(0) origin = jit.Service( position=generate_one_position(), earliest=100, latest=200, duration=2, ) destination = jit.Service( position=generate_one_position(), earliest=1000, latest=2000, duration=20, ) capacity = 44 vehicle = jit.Vehicle(identifier, origin, destination, capacity) expected = ( ('identifier', identifier), ('origin', tuple(origin)), ('destination', tuple(destination)), ('capacity', capacity), ('timeout', vehicle.timeout), ) self.assertEqual(expected, tuple(vehicle))
def test_trip_with_capacity(self): identifier = str() capacity = 3 origin = jit.Service( position=generate_one_position(), earliest=0.0, ) destination = jit.Service(position=generate_one_position()) distance = origin.distance_to(destination) duration = origin.time_to(destination) trip = jit.Trip(identifier=identifier, origin=origin, destination=destination, capacity=capacity) self.assertEqual(origin.position, trip.origin_position) self.assertEqual(destination.position, trip.destination_position) self.assertEqual(0, trip.origin_earliest) self.assertEqual(trip.origin_latest, jit.MAX_FLOAT) self.assertEqual(0, trip.origin_duration) self.assertEqual(capacity, trip.capacity) self.assertEqual(distance, trip.distance) self.assertEqual(duration, trip.duration(trip.origin_earliest))
def setUp(self) -> None: self.vehicle = generate_one_vehicle() self.position = generate_one_position() stop0 = jit.Stop(self.vehicle, self.position, None) stop1 = jit.Stop(self.vehicle, generate_one_position(), stop0) stop0.following = stop1 stop2 = jit.Stop(self.vehicle, generate_one_position(), stop1) stop1.following = stop2 stop3 = jit.Stop(self.vehicle, generate_one_position(), stop2) stop2.following = stop3 stop4 = jit.Stop(self.vehicle, generate_one_position(), stop3) stop3.following = stop4 stops = [stop0, stop1, stop2, stop3, stop4] self.stops = stops self.route = jit.Route(self.vehicle, self.stops) self.planning = jit.Planning({self.route}) self.job = jit.Job(generate_trips(10), objective_cls=jit.DialARideObjective) self.fleet = jit.Fleet(generate_vehicles(10)) self.algorithm = jit.NaiveAlgorithm(self.fleet, self.job) self.result = jit.Result(self.algorithm, self.planning, computation_time=float(0.0))
def test_construction_with_capacity(self): capacity = 3 service = jit.Service( position=generate_one_position(), earliest=1800, latest=3600, duration=60, ) identifier = str(0) vehicle = jit.Vehicle(identifier, service, capacity=capacity) self.assertEqual(identifier, vehicle.identifier) self.assertEqual(capacity, vehicle.capacity) self.assertEqual(service, vehicle.origin) self.assertEqual(service.position, vehicle.origin_position) self.assertEqual(service.earliest, vehicle.origin_earliest) self.assertEqual(service.latest, vehicle.origin_latest) self.assertEqual(service.duration, vehicle.origin_duration) self.assertEqual(service, vehicle.destination) self.assertEqual(service.position, vehicle.destination_position) self.assertEqual(service.earliest, vehicle.destination_earliest) self.assertEqual(service.latest, vehicle.destination_latest) self.assertEqual(service.duration, vehicle.destination_duration)
def setUp(self) -> None: stop0 = jit.Stop(self.vehicle, self.position, None) stop1 = jit.Stop(self.vehicle, generate_one_position(), stop0) stop0.following = stop1 stop2 = jit.Stop(self.vehicle, generate_one_position(), stop1) stop1.following = stop2 stop3 = jit.Stop(self.vehicle, generate_one_position(), stop2) stop2.following = stop3 stop4 = jit.Stop(self.vehicle, generate_one_position(), stop3) stop3.following = stop4 stops = [stop0, stop1, stop2, stop3, stop4] self.stops = stops
def test_construction(self): position = generate_one_position() service = jit.Service(position) self.assertEqual(position, service.position) self.assertEqual(0, service.earliest) self.assertEqual(jit.MAX_FLOAT, service.latest) self.assertEqual(0, service.duration)
def test_construction_with_latest(self): position = generate_one_position() latest = 3600 service = jit.Service(position, latest=latest) self.assertEqual(position, service.position) self.assertEqual(0, service.earliest) self.assertEqual(latest, service.latest) self.assertEqual(0, service.duration)
def test_equals(self): position = generate_one_position() earliest = 1800 latest = 3600 duration = 60 one = jit.Service(position, earliest, latest, duration) two = jit.Service(position, earliest, latest, duration) self.assertEqual(one, two)
def test_dict(self): position = generate_one_position() earliest = 1800 latest = 3600 duration = 60 service = jit.Service(position, earliest, latest, duration) raw = { "position": position, "earliest": earliest, "latest": latest, "duration": duration, } self.assertEqual(raw, dict(service))
def test_as_tuple(self): identifier = str(0) origin = jit.Service( position=generate_one_position(), earliest=100, latest=200, duration=2, ) destination = jit.Service( position=generate_one_position(), earliest=1000, latest=2000, duration=20, ) capacity = 44 on_time_bonus = 3 timeout = 100 trip = jit.Trip( identifier=identifier, origin=origin, destination=destination, capacity=capacity, on_time_bonus=on_time_bonus, timeout=timeout, ) expected = ( ("identifier", identifier), ("origin", tuple(origin)), ("destination", tuple(destination)), ("on_time_bonus", on_time_bonus), ("capacity", capacity), ("timeout", trip.timeout), ) self.assertEqual(expected, tuple(trip))
def test_tuple(self): position = generate_one_position() earliest = 1800 latest = 3600 duration = 60 service = jit.Service(position, earliest, latest, duration) raw = ( ("position", position), ("earliest", earliest), ("latest", latest), ("duration", duration), ) self.assertEqual(raw, tuple(service))
def test_tuple(self): position = generate_one_position() earliest = 1800 latest = 3600 duration = 60 service = jit.Service(position, earliest, latest, duration) raw = ( ('position', position), ('earliest', earliest), ('latest', latest), ('duration', duration), ) self.assertEqual(raw, tuple(service))
def test_dict(self): position = generate_one_position() earliest = 1800 latest = 3600 duration = 60 service = jit.Service(position, earliest, latest, duration) raw = { 'position': position, 'earliest': earliest, 'latest': latest, 'duration': duration, } self.assertEqual(raw, dict(service))
def test_creation_with_previous(self): previous_position = generate_one_position() previous_stop = jit.Stop(self.vehicle, previous_position, None) stop = jit.Stop(self.vehicle, self.position, previous_stop) previous_stop.following = stop self.assertEqual(previous_stop.following, stop) self.assertEqual(self.vehicle, stop.vehicle) self.assertEqual(self.position, stop.position) self.assertEqual(previous_stop, stop.previous) self.assertEqual(stop.position.distance_to(previous_stop.position), stop.distance) self.assertEqual(previous_stop.position, stop.previous_position) self.assertEqual(previous_stop.departure_time, stop.previous_departure_time) self.assertEqual( stop.position.time_to(previous_stop.position, stop.previous_departure_time), stop.transit_time, )
def setUpClass(cls) -> None: cls.vehicle = generate_one_vehicle() cls.position = generate_one_position()
def test_deepcopy(self): position = generate_one_position() copied_position = deepcopy(position) self.assertEqual(position, copied_position)