File: inner_query.pg

package info (click to toggle)
pgrouting 4.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,332 kB
  • sloc: cpp: 21,315; sql: 10,419; ansic: 9,795; perl: 1,142; sh: 919; javascript: 314; xml: 182; makefile: 29
file content (97 lines) | stat: -rw-r--r-- 4,515 bytes parent folder | download
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;