Tests that the route's schedule returns correct statistics for various routes.
(ok_small, visits: list[int])
| 427 | |
| 428 | @pytest.mark.parametrize("visits", [[1, 2, 3, 4], [2, 1, 3, 4]]) |
| 429 | def test_route_schedule(ok_small, visits: list[int]): |
| 430 | """ |
| 431 | Tests that the route's schedule returns correct statistics for various |
| 432 | routes. |
| 433 | """ |
| 434 | route = Route(ok_small, visits, 0) |
| 435 | schedule = route.schedule() |
| 436 | assert_equal(len(schedule), len(route) + 2) # schedule includes depots |
| 437 | |
| 438 | for visit in schedule: |
| 439 | data = ok_small.location(visit.location) |
| 440 | service = getattr(data, "service_duration", 0) # only for clients |
| 441 | assert_equal(visit.service_duration, service) |
| 442 | assert_equal( |
| 443 | visit.service_duration, |
| 444 | visit.end_service - visit.start_service, |
| 445 | ) |
| 446 | |
| 447 | service_duration = sum(visit.service_duration for visit in schedule) |
| 448 | assert_equal(service_duration, route.service_duration()) |
| 449 | |
| 450 | wait_duration = sum(visit.wait_duration for visit in schedule) |
| 451 | assert_equal(wait_duration, route.wait_duration()) |
| 452 | |
| 453 | time_warp = sum(visit.time_warp for visit in schedule) |
| 454 | assert_equal(time_warp, route.time_warp()) |
| 455 | |
| 456 | |
| 457 | def test_route_schedule_wait_duration(): |