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;
|