From a9f63ec2305bc79f92baf6701ac0723d91124efb Mon Sep 17 00:00:00 2001 From: halilsen Date: Tue, 23 Jun 2020 19:12:47 +0200 Subject: [PATCH] Test: filtered infeasible service in initial route --- test/wrapper_test.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/wrapper_test.rb b/test/wrapper_test.rb index 11272bb66..5ff075783 100644 --- a/test/wrapper_test.rb +++ b/test/wrapper_test.rb @@ -3046,4 +3046,28 @@ def test_detecting_unfeasible_services_can_not_take_too_long assert_operator total_time, :<=, 14.0 end + + def test_initial_route_with_infeasible_service + # service_1 is eliminated due to + # "Incompatibility between service skills and sticky vehicles" + # but it is referenced inside an initial route which should not cause an issue + problem = VRP.basic + + problem[:vehicles] += [{ + id: 'vehicle_1', + matrix_id: 'matrix_0', + start_point_id: 'point_0', + skills: [['vehicle_1']] + }] + + problem[:services][0][:skills] = ['vehicle_1'] + problem[:services][0][:sticky_vehicle_ids] = ['vehicle_0'] + + problem[:routes] = [{ + vehicle_id: 'vehicle_0', + mission_ids: ['service_1', 'service_2', 'service_3'] + }] + + assert OptimizerWrapper.wrapper_vrp('demo', { services: { vrp: [:ortools] }}, TestHelper.create(problem), nil) + end end