Skip to content

Commit 9052679

Browse files
committed
Testing the function
1 parent c1137bf commit 9052679

File tree

3 files changed

+197
-3
lines changed

3 files changed

+197
-3
lines changed
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
BEGIN;
2+
BEGIN
3+
SET client_min_messages TO NOTICE;
4+
SET
5+
SET extra_float_digits=-3;
6+
SET
7+
/* --q1 */
8+
SELECT * FROM pgr_withPointsKSP(
9+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
10+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
11+
-1, -2, 2, 'b');
12+
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
13+
-----+---------+----------+-----------+---------+------+------+------+----------
14+
1 | 1 | 1 | -1 | -2 | -1 | 1 | 0.6 | 0
15+
2 | 1 | 2 | -1 | -2 | 6 | 4 | 1 | 0.6
16+
3 | 1 | 3 | -1 | -2 | 7 | 8 | 1 | 1.6
17+
4 | 1 | 4 | -1 | -2 | 11 | 9 | 1 | 2.6
18+
5 | 1 | 5 | -1 | -2 | 16 | 15 | 0.4 | 3.6
19+
6 | 1 | 6 | -1 | -2 | -2 | -1 | 0 | 4
20+
7 | 2 | 1 | -1 | -2 | -1 | 1 | 0.6 | 0
21+
8 | 2 | 2 | -1 | -2 | 6 | 4 | 1 | 0.6
22+
9 | 2 | 3 | -1 | -2 | 7 | 8 | 1 | 1.6
23+
10 | 2 | 4 | -1 | -2 | 11 | 11 | 1 | 2.6
24+
11 | 2 | 5 | -1 | -2 | 12 | 13 | 1 | 3.6
25+
12 | 2 | 6 | -1 | -2 | 17 | 15 | 0.6 | 4.6
26+
13 | 2 | 7 | -1 | -2 | -2 | -1 | 0 | 5.2
27+
(13 rows)
28+
29+
/* --q2 */
30+
SELECT * FROM pgr_withPointsKSP(
31+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
32+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
33+
-1, -2, 2, 'l', details := true);
34+
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
35+
-----+---------+----------+-----------+---------+------+------+------+----------
36+
1 | 1 | 1 | -1 | -2 | -1 | 1 | 0.6 | 0
37+
2 | 1 | 2 | -1 | -2 | 6 | 4 | 0.7 | 0.6
38+
3 | 1 | 3 | -1 | -2 | -6 | 4 | 0.3 | 1.3
39+
4 | 1 | 4 | -1 | -2 | 7 | 8 | 1 | 1.6
40+
5 | 1 | 5 | -1 | -2 | 11 | 11 | 1 | 2.6
41+
6 | 1 | 6 | -1 | -2 | 12 | 13 | 1 | 3.6
42+
7 | 1 | 7 | -1 | -2 | 17 | 15 | 0.6 | 4.6
43+
8 | 1 | 8 | -1 | -2 | -2 | -1 | 0 | 5.2
44+
9 | 2 | 1 | -1 | -2 | -1 | 1 | 0.6 | 0
45+
10 | 2 | 2 | -1 | -2 | 6 | 4 | 0.7 | 0.6
46+
11 | 2 | 3 | -1 | -2 | -6 | 4 | 0.3 | 1.3
47+
12 | 2 | 4 | -1 | -2 | 7 | 8 | 1 | 1.6
48+
13 | 2 | 5 | -1 | -2 | 11 | 9 | 1 | 2.6
49+
14 | 2 | 6 | -1 | -2 | 16 | 15 | 1 | 3.6
50+
15 | 2 | 7 | -1 | -2 | 17 | 15 | 0.6 | 4.6
51+
16 | 2 | 8 | -1 | -2 | -2 | -1 | 0 | 5.2
52+
(16 rows)
53+
54+
/* --q3 */
55+
SELECT * FROM pgr_withPointsKSP(
56+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
57+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
58+
-1, -2, 2, 'r',
59+
heap_paths := true, details := true);
60+
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
61+
-----+---------+----------+-----------+---------+------+------+------+----------
62+
1 | 1 | 1 | -1 | -2 | -1 | 1 | 0.4 | 0
63+
2 | 1 | 2 | -1 | -2 | 5 | 1 | 1 | 0.4
64+
3 | 1 | 3 | -1 | -2 | 6 | 4 | 0.7 | 1.4
65+
4 | 1 | 4 | -1 | -2 | -6 | 4 | 0.3 | 2.1
66+
5 | 1 | 5 | -1 | -2 | 7 | 8 | 1 | 2.4
67+
6 | 1 | 6 | -1 | -2 | 11 | 9 | 1 | 3.4
68+
7 | 1 | 7 | -1 | -2 | 16 | 15 | 0.4 | 4.4
69+
8 | 1 | 8 | -1 | -2 | -2 | -1 | 0 | 4.8
70+
9 | 2 | 1 | -1 | -2 | -1 | 1 | 0.4 | 0
71+
10 | 2 | 2 | -1 | -2 | 5 | 1 | 1 | 0.4
72+
11 | 2 | 3 | -1 | -2 | 6 | 4 | 0.7 | 1.4
73+
12 | 2 | 4 | -1 | -2 | -6 | 4 | 0.3 | 2.1
74+
13 | 2 | 5 | -1 | -2 | 7 | 8 | 1 | 2.4
75+
14 | 2 | 6 | -1 | -2 | 11 | 11 | 1 | 3.4
76+
15 | 2 | 7 | -1 | -2 | 12 | 13 | 1 | 4.4
77+
16 | 2 | 8 | -1 | -2 | 17 | 15 | 1 | 5.4
78+
17 | 2 | 9 | -1 | -2 | 16 | 15 | 0.4 | 6.4
79+
18 | 2 | 10 | -1 | -2 | -2 | -1 | 0 | 6.8
80+
19 | 3 | 1 | -1 | -2 | -1 | 1 | 0.4 | 0
81+
20 | 3 | 2 | -1 | -2 | 5 | 1 | 1 | 0.4
82+
21 | 3 | 3 | -1 | -2 | 6 | 4 | 0.7 | 1.4
83+
22 | 3 | 4 | -1 | -2 | -6 | 4 | 0.3 | 2.1
84+
23 | 3 | 5 | -1 | -2 | 7 | 10 | 1 | 2.4
85+
24 | 3 | 6 | -1 | -2 | 8 | 12 | 0.6 | 3.4
86+
25 | 3 | 7 | -1 | -2 | -3 | 12 | 0.4 | 4
87+
26 | 3 | 8 | -1 | -2 | 12 | 13 | 1 | 4.4
88+
27 | 3 | 9 | -1 | -2 | 17 | 15 | 1 | 5.4
89+
28 | 3 | 10 | -1 | -2 | 16 | 15 | 0.4 | 6.4
90+
29 | 3 | 11 | -1 | -2 | -2 | -1 | 0 | 6.8
91+
(29 rows)
92+
93+
/* --q4 */
94+
SELECT * FROM pgr_withPointsKSP(
95+
$e$ SELECT * FROM edges $e$,
96+
$p$ SELECT edge_id, round(fraction::numeric, 2) AS fraction, side
97+
FROM pgr_findCloseEdges(
98+
$$SELECT id, geom FROM edges$$,
99+
(SELECT ST_POINT(2.9, 1.8)),
100+
0.5, cap => 2)
101+
$p$,
102+
1, -1, 2, 'r');
103+
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
104+
-----+---------+----------+-----------+---------+------+------+------+----------
105+
1 | 1 | 1 | 1 | -1 | 1 | 6 | 1 | 0
106+
2 | 1 | 2 | 1 | -1 | 3 | 7 | 1 | 1
107+
3 | 1 | 3 | 1 | -1 | 7 | 8 | 1 | 2
108+
4 | 1 | 4 | 1 | -1 | 11 | 9 | 1 | 3
109+
5 | 1 | 5 | 1 | -1 | 16 | 16 | 1 | 4
110+
6 | 1 | 6 | 1 | -1 | 15 | 3 | 1 | 5
111+
7 | 1 | 7 | 1 | -1 | 10 | 5 | 0.8 | 6
112+
8 | 1 | 8 | 1 | -1 | -1 | -1 | 0 | 6.8
113+
9 | 2 | 1 | 1 | -1 | 1 | 6 | 1 | 0
114+
10 | 2 | 2 | 1 | -1 | 3 | 7 | 1 | 1
115+
11 | 2 | 3 | 1 | -1 | 7 | 10 | 1 | 2
116+
12 | 2 | 4 | 1 | -1 | 8 | 12 | 1 | 3
117+
13 | 2 | 5 | 1 | -1 | 12 | 13 | 1 | 4
118+
14 | 2 | 6 | 1 | -1 | 17 | 15 | 1 | 5
119+
15 | 2 | 7 | 1 | -1 | 16 | 16 | 1 | 6
120+
16 | 2 | 8 | 1 | -1 | 15 | 3 | 1 | 7
121+
17 | 2 | 9 | 1 | -1 | 10 | 5 | 0.8 | 8
122+
18 | 2 | 10 | 1 | -1 | -1 | -1 | 0 | 8.8
123+
(18 rows)
124+
125+
/* -- q5 */
126+
SELECT * FROM pgr_withPointsKSP(
127+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
128+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
129+
-1, ARRAY[-3, 7], 2, 'b',
130+
directed => false);
131+
seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost
132+
-----+---------+----------+-----------+---------+------+------+------+----------
133+
1 | 1 | 1 | -1 | -3 | -1 | 1 | 0.6 | 0
134+
2 | 1 | 2 | -1 | -3 | 6 | 4 | 1 | 0.6
135+
3 | 1 | 3 | -1 | -3 | 7 | 10 | 1 | 1.6
136+
4 | 1 | 4 | -1 | -3 | 8 | 12 | 0.6 | 2.6
137+
5 | 1 | 5 | -1 | -3 | -3 | -1 | 0 | 3.2
138+
6 | 2 | 1 | -1 | -3 | -1 | 1 | 0.6 | 0
139+
7 | 2 | 2 | -1 | -3 | 6 | 4 | 1 | 0.6
140+
8 | 2 | 3 | -1 | -3 | 7 | 8 | 1 | 1.6
141+
9 | 2 | 4 | -1 | -3 | 11 | 11 | 1 | 2.6
142+
10 | 2 | 5 | -1 | -3 | 12 | 12 | 0.4 | 3.6
143+
11 | 2 | 6 | -1 | -3 | -3 | -1 | 0 | 4
144+
12 | 3 | 1 | -1 | 7 | -1 | 1 | 0.6 | 0
145+
13 | 3 | 2 | -1 | 7 | 6 | 4 | 1 | 0.6
146+
14 | 3 | 3 | -1 | 7 | 7 | -1 | 0 | 1.6
147+
15 | 4 | 1 | -1 | 7 | -1 | 1 | 0.6 | 0
148+
16 | 4 | 2 | -1 | 7 | 6 | 2 | 1 | 0.6
149+
17 | 4 | 3 | -1 | 7 | 10 | 5 | 1 | 1.6
150+
18 | 4 | 4 | -1 | 7 | 11 | 8 | 1 | 2.6
151+
19 | 4 | 5 | -1 | 7 | 7 | -1 | 0 | 3.6
152+
(19 rows)
153+
154+
/* -- q6 */
155+
ROLLBACK;
156+
ROLLBACK
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
-- CopyRight(c) pgRouting developers
2+
-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/
3+
SET extra_float_digits=-3;
4+
/* --q1 */
5+
SELECT * FROM pgr_withPointsKSP(
6+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
7+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
8+
-1, -2, 2, 'b');
9+
/* --q2 */
10+
SELECT * FROM pgr_withPointsKSP(
11+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
12+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
13+
-1, -2, 2, 'l', details := true);
14+
/* --q3 */
15+
SELECT * FROM pgr_withPointsKSP(
16+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
17+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
18+
-1, -2, 2, 'r',
19+
heap_paths := true, details := true);
20+
/* --q4 */
21+
SELECT * FROM pgr_withPointsKSP(
22+
$e$ SELECT * FROM edges $e$,
23+
$p$ SELECT edge_id, round(fraction::numeric, 2) AS fraction, side
24+
FROM pgr_findCloseEdges(
25+
$$SELECT id, geom FROM edges$$,
26+
(SELECT ST_POINT(2.9, 1.8)),
27+
0.5, cap => 2)
28+
$p$,
29+
1, -1, 2, 'r');
30+
/* -- q5 */
31+
SELECT * FROM pgr_withPointsKSP(
32+
'SELECT id, source, target, cost, reverse_cost FROM edges ORDER BY id',
33+
'SELECT pid, edge_id, fraction, side from pointsOfInterest',
34+
-1, ARRAY[-3, 7], 2, 'b',
35+
directed => false);
36+
/* -- q6 */

src/ksp/withPoints_ksp.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,11 @@ process(
7676
if (!((driving_side[0] == 'r')
7777
|| (driving_side[0] == 'l')) && !directed) {
7878
driving_side[0] = 'b';
79-
} else if(!((driving_side[0] == 'r')
80-
|| (driving_side[0] == 'l'))){
81-
driving_side[0] = 'b';
79+
}
80+
81+
if(!((driving_side[0] == 'r')
82+
|| (driving_side[0] == 'l') || (driving_side[0] == 'b'))){
83+
return;
8284
}
8385

8486
pgr_SPI_connect();

0 commit comments

Comments
 (0)