Skip to content

Commit 006d713

Browse files
committed
(data) Not using pgrouting, vroom ortools on sample data
1 parent f8f2c96 commit 006d713

File tree

3 files changed

+72
-91
lines changed

3 files changed

+72
-91
lines changed

tools/developer/run.sh

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ pushd "${DIR}" > /dev/null || exit 1
1515
VERSION=$(grep -Po '(?<=project\(VRPROUTING VERSION )[^;]+' CMakeLists.txt)
1616
echo "vrpRouting VERSION ${VERSION}"
1717

18-
# VROOM
19-
#VROOMVER="1.14"
20-
#VROOMVER="1.13"
21-
VROOMVER="1.12"
22-
#VROOMVER="1.11"
23-
VENV="/home/vicky/pgrouting/vrprouting/env-vrp"
24-
2518
# set up your postgres version, port and compiler (if more than one)
2619
PGVERSION="15"
2720
PGPORT="5432"
@@ -40,17 +33,6 @@ QUERIES_DIRS="
4033
TAP_DIRS="
4134
"
4235

43-
function install_vroom {
44-
cd "${DIR}"
45-
rm -rf ./vroom-v${VROOMVER}.0
46-
git clone --depth 1 --branch "v${VROOMVER}.0" https://github.com/VROOM-Project/vroom "./vroom-v${VROOMVER}.0"
47-
pushd "./vroom-v${VROOMVER}.0"
48-
git submodule update --init
49-
cd src/
50-
USE_ROUTING=false make shared
51-
popd
52-
}
53-
5436
function install_data {
5537
cd "${DIR}"
5638
pushd tools/testers
@@ -74,16 +56,16 @@ function set_cmake {
7456
# with developers documentation
7557
#cmake -DWITH_DOC=ON -DBUILD_DOXY=ON ..
7658

77-
#CXX=clang++ CC=clang cmake -DPOSTGRESQL_BIN=${PGBIN} -DCMAKE_BUILD_TYPE=Debug -DVROOM_INSTALL_PATH="${DIR}/vroom-${VROOMVER}" ..
59+
#CXX=clang++ CC=clang cmake -DPOSTGRESQL_BIN=${PGBIN} -DCMAKE_BUILD_TYPE=Debug..
7860
#CXX=clang++ CC=clang cmake "-DPOSTGRESQL_BIN=${PGBIN}" "-DPostgreSQL_INCLUDE_DIR=${PGINC}" \
7961
#-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release \
80-
#-DWITH_DOC=ON -DBUILD_DOXY=ON -DVROOM_INSTALL_PATH="${DIR}/vroom-${VROOMVER}" ..
62+
#-DWITH_DOC=ON -DBUILD_DOXY=ON ..
8163
cmake "-DPOSTGRESQL_BIN=${PGBIN}" "-DPostgreSQL_INCLUDE_DIR=${PGINC}" \
8264
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release \
83-
-DWITH_DOC=ON -DBUILD_DOXY=ON \
84-
-DVROOM_INSTALL_PATH="${DIR}/vroom-v${VROOMVER}.0" ..
65+
-DWITH_DOC=ON -DBUILD_DOXY=ON ..
8566

86-
#cmake "-DPostgreSQL_INCLUDE_DIR=${PGINC}" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DPOSTGRESQL_BIN=${PGBIN} -DCMAKE_BUILD_TYPE=Debug -DWITH_DOC=ON -DVROOM_INSTALL_PATH="${DIR}/vroom-${VROOMVER}" ..
67+
#cmake "-DPostgreSQL_INCLUDE_DIR=${PGINC}" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DPOSTGRESQL_BIN=${PGBIN} \
68+
# -DCMAKE_BUILD_TYPE=Debug -DWITH_DOC=ON ..
8769
}
8870

8971
function tap_test {
@@ -151,7 +133,6 @@ function test_compile {
151133

152134
set_compiler "${GCC}"
153135

154-
#install_vroom
155136
install_data
156137
build
157138

@@ -175,7 +156,6 @@ function test_compile {
175156
done
176157

177158
tap_test
178-
exit 0
179159
tools/testers/doc_queries_generator.pl -pgport "${PGPORT}" -venv "${VENV}"
180160
build_doc
181161
tap_test

tools/testers/sampledata.sql

Lines changed: 65 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,20 @@
1-
2-
31
------------------------------------------------------------------------------------------------------
42
------------------------------------------------------------------------------------------------------
53
-- SAMPLE DATA
64
------------------------------------------------------------------------------------------------------
75
------------------------------------------------------------------------------------------------------
6+
-- CopyRight(c) pgRouting developers
7+
-- Creative Commons Attribution-Share Alike 3.0 License : https://creativecommons.org/licenses/by-sa/3.0/
88

9-
DROP TABLE IF EXISTS public.edge_table;
10-
DROP TABLE IF EXISTS public.edge_table_vertices_pgr;
9+
DROP TABLE IF EXISTS public.edges;
10+
DROP TABLE IF EXISTS public.vertices;
1111
DROP TABLE IF EXISTS public.vehicles_1;
1212
DROP TABLE IF EXISTS public.orders_1;
1313
DROP TABLE IF EXISTS public.edges_matrix;
1414

15-
-- activate python
16-
CREATE OR REPLACE PROCEDURE activate_python_venv(venv text)
17-
LANGUAGE plpython3u AS
18-
$BODY$
19-
import os
20-
import sys
21-
22-
if sys.platform in ('win32', 'win64', 'cygwin'):
23-
activate_this = os.path.join(venv, 'Scripts', 'activate_this.py')
24-
else:
25-
activate_this = os.path.join(venv, 'bin', 'activate_this.py')
26-
27-
exec(open(activate_this).read(), dict(__file__=activate_this))
28-
$BODY$;
29-
3015
--EDGE TABLE CREATE start
31-
CREATE TABLE public.edge_table (
32-
id BIGSERIAL,
16+
CREATE TABLE public.edges (
17+
id BIGSERIAL PRIMARY KEY,
3318
source BIGINT,
3419
target BIGINT,
3520
cost FLOAT,
@@ -42,38 +27,58 @@ CREATE TABLE public.edge_table (
4227
);
4328
--EDGE TABLE CREATE end
4429
--EDGE TABLE ADD DATA start
45-
INSERT INTO public.edge_table (
46-
cost, reverse_cost,
47-
x1, y1,
48-
x2, y2) VALUES
49-
( 1, 1, 2, 0, 2, 1),
50-
(-1, 1, 2, 1, 3, 1),
51-
(-1, 1, 3, 1, 4, 1),
52-
( 1, 1, 2, 1, 2, 2),
53-
( 1, -1, 3, 1, 3, 2),
54-
( 1, 1, 0, 2, 1, 2),
55-
( 1, 1, 1, 2, 2, 2),
56-
( 1, 1, 2, 2, 3, 2),
57-
( 1, 1, 3, 2, 4, 2),
58-
( 1, 1, 2, 2, 2, 3),
59-
( 1, -1, 3, 2, 3, 3),
60-
( 1, -1, 2, 3, 3, 3),
61-
( 1, -1, 3, 3, 4, 3),
62-
( 1, 1, 2, 3, 2, 4),
63-
( 1, 1, 4, 2, 4, 3),
64-
( 1, 1, 4, 1, 4, 2),
65-
( 1, 1, 0.5, 3.5, 1.999999999999, 3.5),
66-
( 1, 1, 3.5, 2.3, 3.5, 4);
67-
--EDGE TABLE ADD DATA end
68-
69-
--EDGE TABLE update geometry start
70-
71-
UPDATE public.edge_table SET geom = st_makeline(st_point(x1,y1),st_point(x2,y2));
72-
73-
--EDGE TABLE update geometry end
30+
INSERT INTO public.edges (cost, reverse_cost, geom) VALUES
31+
( 1, 1, ST_MakeLine(ST_POINT(2, 0), ST_POINT(2, 1))),
32+
(-1, 1, ST_MakeLine(ST_POINT(2, 1), ST_POINT(3, 1))),
33+
(-1, 1, ST_MakeLine(ST_POINT(3, 1), ST_POINT(4, 1))),
34+
( 1, 1, ST_MakeLine(ST_POINT(2, 1), ST_POINT(2, 2))),
35+
( 1, -1, ST_MakeLine(ST_POINT(3, 1), ST_POINT(3, 2))),
36+
( 1, 1, ST_MakeLine(ST_POINT(0, 2), ST_POINT(1, 2))),
37+
( 1, 1, ST_MakeLine(ST_POINT(1, 2), ST_POINT(2, 2))),
38+
( 1, 1, ST_MakeLine(ST_POINT(2, 2), ST_POINT(3, 2))),
39+
( 1, 1, ST_MakeLine(ST_POINT(3, 2), ST_POINT(4, 2))),
40+
( 1, 1, ST_MakeLine(ST_POINT(2, 2), ST_POINT(2, 3))),
41+
( 1, -1, ST_MakeLine(ST_POINT(3, 2), ST_POINT(3, 3))),
42+
( 1, -1, ST_MakeLine(ST_POINT(2, 3), ST_POINT(3, 3))),
43+
( 1, -1, ST_MakeLine(ST_POINT(3, 3), ST_POINT(4, 3))),
44+
( 1, 1, ST_MakeLine(ST_POINT(2, 3), ST_POINT(2, 4))),
45+
( 1, 1, ST_MakeLine(ST_POINT(4, 2), ST_POINT(4, 3))),
46+
( 1, 1, ST_MakeLine(ST_POINT(4, 1), ST_POINT(4, 2))),
47+
( 1, 1, ST_MakeLine(ST_POINT(0.5, 3.5), ST_POINT(1.999999999999, 3.5))),
48+
( 1, 1, ST_MakeLine(ST_POINT(3.5, 2.3), ST_POINT(3.5, 4)));
49+
/* --EDGE TABLE ADD DATA end */
7450

7551
--EDGE TABLE TOPOLOGY start
76-
SELECT pgr_createTopology('public.edge_table',0.001, the_geom =>'geom');
52+
53+
/* -- q1 */
54+
SELECT * INTO public.vertices
55+
FROM pgr_extractVertices('SELECT id, geom FROM edges ORDER BY id');
56+
/* -- q1-1 */
57+
CREATE SEQUENCE vertices_id_seq;
58+
ALTER TABLE public.vertices ALTER COLUMN id SET DEFAULT nextval('vertices_id_seq');
59+
ALTER SEQUENCE vertices_id_seq OWNED BY vertices.id;
60+
SELECT setval('vertices_id_seq', (SELECT coalesce(max(id)) FROM public.vertices));
61+
/* -- q1-2 */
62+
\d public.vertices
63+
/* -- q2 */
64+
SELECT * FROM public.vertices;
65+
/* -- q3 */
66+
/* -- set the source information */
67+
UPDATE public.edges AS e
68+
SET source = v.id, x1 = x, y1 = y
69+
FROM public.vertices AS v
70+
WHERE ST_StartPoint(e.geom) = v.geom;
71+
72+
/* -- set the target information */
73+
UPDATE public.edges AS e
74+
SET target = v.id, x2 = x, y2 = y
75+
FROM public.vertices AS v
76+
WHERE ST_EndPoint(e.geom) = v.geom;
77+
/* -- q4 */
78+
SELECT id, source, target
79+
FROM public.edges ORDER BY id;
80+
/* -- q5 */
81+
7782
--EDGE TABLE TOPOLOGY end
7883

7984

@@ -124,24 +129,24 @@ INSERT INTO public.orders_1
124129
p_id, p_x, p_y, p_open, p_close, p_service,
125130
d_id, d_x, d_y, d_open, d_close, d_service) VALUES
126131
(10,
127-
3, 3, 1, 2, 10, 3,
128-
8, 1, 2, 6, 15, 3),
132+
10, 3, 1, 2, 10, 3,
133+
3, 1, 2, 6, 15, 3),
129134
(20,
130-
9, 4, 2, 4, 15, 2,
131-
4, 4, 1, 6, 20, 3),
135+
16, 4, 2, 4, 15, 2,
136+
15, 4, 1, 6, 20, 3),
132137
(30,
133-
5, 2, 2, 2, 10, 3,
134-
11, 3, 3, 3, 20, 3);
138+
7, 2, 2, 2, 10, 3,
139+
6, 3, 3, 3, 20, 3);
135140

136141

137142
--ORDERS TABLE end
138143

139144
SELECT start_vid, end_vid, agg_cost::BIGINT
140145
INTO edges_matrix
141146
FROM pgr_dijkstraCostMatrix($$
142-
SELECT * FROM edge_table$$,
143-
(SELECT array_agg(id) FROM edge_table_vertices_pgr)
144-
);
147+
SELECT * FROM public.edges$$,
148+
(SELECT array_agg(id) FROM public.vertices),
149+
directed => false);
145150

146151
/*
147152
Sample data for wc

tools/testers/setup_db.sql

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ SET client_min_messages = WARNING;
1515

1616
CREATE EXTENSION IF NOT EXISTS pgtap;
1717
CREATE EXTENSION IF NOT EXISTS vrprouting CASCADE;
18-
CREATE EXTENSION IF NOT EXISTS postgis;
19-
CREATE EXTENSION IF NOT EXISTS pgrouting;
20-
CREATE EXTENSION IF NOT EXISTS plpython3u;
18+
CREATE EXTENSION IF NOT EXISTS postgis CASCADE;
19+
CREATE EXTENSION IF NOT EXISTS pgrouting CASCADE;
2120

2221
BEGIN;
2322

@@ -27,9 +26,6 @@ BEGIN;
2726
\i solomon_100_rc101.data.sql
2827
\i no_crash_test.sql
2928
\i general_pgtap_tests.sql
30-
\i vroomdata.sql
31-
\i ortoolsdata.sql
3229
\i functions.sql
33-
\i solomon_100_rc101.data.sql
3430

3531
END;

0 commit comments

Comments
 (0)