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
|
/* :file: This file is part of the pgRouting project.
:copyright: Copyright (c) 2020-2026 pgRouting developers
:license: Creative Commons Attribution-Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0 */
BEGIN;
SELECT plan(7);
CREATE OR REPLACE FUNCTION foo( TestFunction TEXT, sql_EdgesQuery TEXT )
RETURNS SETOF TEXT AS
$BODY$
BEGIN
IF NOT min_version('3.2.0') THEN
RETURN QUERY
SELECT skip(1, 'Combinations functionality is new on 3.2.0');
RETURN;
END IF;
IF TestFunction = 'pgr_maxFlow' THEN
RETURN query SELECT set_eq( 'SELECT * FROM ' || TestFunction || '( $$' || sql_EdgesQuery || '$$,
$$SELECT * FROM combinations WHERE source IN (-1)$$ ) ',
'SELECT NULL::BIGINT'
);
ELSIF TestFunction = 'pgr_maxFlowMinCost_Cost' THEN
RETURN query SELECT set_eq( 'SELECT * FROM ' || TestFunction || '( $$' || sql_EdgesQuery || '$$,
$$SELECT * FROM combinations WHERE source IN (-1)$$ ) ',
'SELECT NULL::FLOAT'
);
ELSE
RETURN query SELECT is_empty( 'SELECT * FROM ' || TestFunction || '( $$' || sql_EdgesQuery || '$$,
$$SELECT * FROM combinations WHERE source IN (-1)$$ ) '
);
END IF;
RETURN;
END
$BODY$
language plpgsql;
-- test pgr_maxFlow
SELECT * FROM foo(
'pgr_maxFlow',
'SELECT id, source, target, capacity, reverse_capacity FROM edges'
);
-- test pgr_boykovKolmogorov
SELECT * FROM foo(
'pgr_boykovKolmogorov',
'SELECT id, source, target, capacity, reverse_capacity FROM edges'
);
-- test pgr_edmondsKarp
SELECT * FROM foo(
'pgr_edmondsKarp',
'SELECT id, source, target, capacity, reverse_capacity FROM edges'
);
-- test pgr_pushRelabel
SELECT * FROM foo(
'pgr_pushRelabel',
'SELECT id, source, target, capacity, reverse_capacity FROM edges'
);
-- test pgr_edgeDisjointPaths
SELECT * FROM foo(
'pgr_edgeDisjointPaths',
'SELECT id, source, target, cost, reverse_cost FROM edges'
);
-- test pgr_maxFlowMinCost
SELECT * FROM foo(
'pgr_maxFlowMinCost',
'SELECT id, source, target, capacity, reverse_capacity, cost, reverse_cost FROM edges'
);
-- test pgr_maxFlowMinCost_Cost
SELECT * FROM foo(
'pgr_maxFlowMinCost_Cost',
'SELECT id, source, target, capacity, reverse_capacity, cost, reverse_cost FROM edges'
);
-- Finish the tests and clean up.
SELECT * FROM finish();
ROLLBACK;
|