1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
/* :file: This file is part of the pgRouting project.
:copyright: Copyright (c) 2022-2026 pgRouting developers
:license: Creative Commons Attribution-Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0 */
BEGIN;
UPDATE edges SET cost = sign(cost), reverse_cost = sign(reverse_cost);
SELECT plan(91);
SELECT lives_ok(
$q$
SELECT * FROM pgr_vrpOneDepot(
$$SELECT * FROM solomon_100_RC_101$$,
$$SELECT * FROM vrp_vehicles$$,
$$SELECT * from vrp_distance$$,1)$q$,'Basic call works');
CREATE OR REPLACE FUNCTION style_jobs()
RETURNS SETOF TEXT AS
$BODY$
BEGIN
RETURN QUERY SELECT test_anyInteger('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'id','solomon_100_RC_101');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'x','solomon_100_RC_101');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'y','solomon_100_RC_101');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'order_unit','solomon_100_RC_101');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'open_time','solomon_100_RC_101');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'close_time','solomon_100_RC_101');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot(',',$$SELECT * FROM vrp_vehicles $$, $$ SELECT * from vrp_distance$$,1)',
ARRAY['id', 'x', 'y', 'order_unit', 'open_time', 'close_time', 'service_time'],
'service_time','solomon_100_RC_101');
END;
$BODY$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION style_distances()
RETURNS SETOF TEXT AS
$BODY$
BEGIN
RETURN QUERY SELECT test_anyInteger('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$, $$ SELECT * from vrp_vehicles$$,',',1)',
ARRAY['src_id', 'dest_id', 'cost','distance','traveltime'],
'src_id', 'vrp_distance');
RETURN QUERY SELECT test_anyInteger('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$, $$ SELECT * from vrp_vehicles$$,',',1)',
ARRAY['src_id', 'dest_id', 'cost','distance','traveltime'],
'dest_id', 'vrp_distance');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$, $$ SELECT * from vrp_vehicles$$,',',1)',
ARRAY['src_id', 'dest_id', 'cost','distance','traveltime'],
'cost', 'vrp_distance');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$, $$ SELECT * from vrp_vehicles$$,',',1)',
ARRAY['src_id', 'dest_id', 'cost','distance','traveltime'],
'distance', 'vrp_distance');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$, $$ SELECT * from vrp_vehicles$$,',',1)',
ARRAY['src_id', 'dest_id', 'cost','distance','traveltime'],
'traveltime', 'vrp_distance');
END;
$BODY$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION style_vehicles()
RETURNS SETOF TEXT AS
$BODY$
BEGIN
RETURN QUERY SELECT test_anyInteger('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$,',', $$ SELECT * from vrp_distance$$,1)',
ARRAY['vehicle_id', 'capacity', 'case_no'],
'vehicle_id','vrp_vehicles');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$,',', $$ SELECT * from vrp_distance$$,1)',
ARRAY['vehicle_id', 'capacity', 'case_no'],
'capacity','vrp_vehicles');
RETURN QUERY SELECT test_anyNumerical('pgr_vrpOneDepot($$SELECT * FROM solomon_100_RC_101$$,',', $$ SELECT * from vrp_distance$$,1)',
ARRAY['vehicle_id', 'capacity', 'case_no'],
'case_no','vrp_vehicles');
END;
$BODY$ LANGUAGE plpgsql;
SELECT style_jobs();
SELECT style_distances();
SELECT style_vehicles();
SELECT finish();
ROLLBACK;
|