File: compare_dijkstra.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 (56 lines) | stat: -rw-r--r-- 3,036 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
/* :file: This file is part of the pgRouting project.
:copyright: Copyright (c) 2019-2026 pgRouting developers
:license: Creative Commons Attribution-Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0 */


BEGIN;

SELECT plan(1300);

-- Compare final row of result (Only final row due to existence of multiple valid paths)
CREATE or REPLACE FUNCTION binaryBreadthFirstSearch_compare_dijkstra(lim INTEGER default 17)
RETURNS SETOF TEXT AS
$BODY$
DECLARE
inner_sql TEXT;
dijkstra_sql TEXT;
binaryBreadthFirstSearch TEXT;
BEGIN

  IF NOT min_version('3.5.0') THEN
  -- All These tests should work when binaryBreadthFirstSearch 's output is standardized

    RETURN QUERY SELECT compare_dijkstra_one_one('pgr_binaryBreadthFirstSearch', true, '*', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_one_one('pgr_binaryBreadthFirstSearch', false, '*', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_one_many('pgr_binaryBreadthFirstSearch', true, '*', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_one_many('pgr_binaryBreadthFirstSearch', false, '*', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_many_one('pgr_binaryBreadthFirstSearch', true, '*', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_many_one('pgr_binaryBreadthFirstSearch', false, '*', 'WHERE edge = -1');

  ELSE

    RETURN QUERY SELECT compare_dijkstra_one_one('pgr_binaryBreadthFirstSearch', true, 'seq, path_seq, node, edge, cost, agg_cost', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_one_one('pgr_binaryBreadthFirstSearch', false, 'seq, path_seq, node, edge, cost, agg_cost', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_one_many('pgr_binaryBreadthFirstSearch', true, 'seq, path_seq, end_vid, node, edge, cost, agg_cost', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_one_many('pgr_binaryBreadthFirstSearch', false, 'seq, path_seq, end_vid, node, edge, cost, agg_cost', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_many_one('pgr_binaryBreadthFirstSearch', true, 'seq, path_seq, start_vid, node, edge, cost, agg_cost', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_many_one('pgr_binaryBreadthFirstSearch', false, 'seq, path_seq, start_vid, node, edge, cost, agg_cost', 'WHERE edge = -1');
  END IF;

  RETURN QUERY SELECT compare_dijkstra_many_many('pgr_binaryBreadthFirstSearch', true, '*', 'WHERE edge = -1');
  RETURN QUERY SELECT compare_dijkstra_many_many('pgr_binaryBreadthFirstSearch', false, '*', 'WHERE edge = -1');
  IF min_version('3.2.0') THEN
    RETURN QUERY SELECT compare_dijkstra_combinations('pgr_binaryBreadthFirstSearch', true, '*', 'WHERE edge = -1');
    RETURN QUERY SELECT compare_dijkstra_combinations('pgr_binaryBreadthFirstSearch', false, '*', 'WHERE edge = -1');
  ELSE
    RETURN QUERY SELECT skip(4, 'Combinations signature added on version 3.2.0');
  END IF;

END
$BODY$
language plpgsql;

SELECT * from binaryBreadthFirstSearch_compare_dijkstra();

SELECT * FROM finish();
ROLLBACK;