Example #1
0
    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)
Example #2
0
 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))
Example #3
0
    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))
Example #4
0
    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))
Example #5
0
    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))
Example #6
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)
Example #7
0
    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
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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))
Example #12
0
    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))
Example #13
0
    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))
Example #14
0
    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))
Example #15
0
    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))
Example #16
0
    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,
        )
Example #17
0
 def setUpClass(cls) -> None:
     cls.vehicle = generate_one_vehicle()
     cls.position = generate_one_position()
Example #18
0
 def test_deepcopy(self):
     position = generate_one_position()
     copied_position = deepcopy(position)
     self.assertEqual(position, copied_position)