Clean and upgrade openCypher and stress tests (#27)
* Add initial behave test improvements * Make HTML human-readable * Remove tutorial tests * Migrate to neo4j-driver==4.1.1
This commit is contained in:
parent
4afcf1b655
commit
573b6cb045
.github/workflows
inittests
benchmark/query
gql_behave
.gitignoreREADME.mdcontinuous_integrationenvironment.pyrequirements.txtrun.py
steps
tests
config.yaml
memgraph_V1
features
aggregations.featurecartesian.featurecase.featurecreate.featureexpressions.featurefunctions.featurelist_operations.featuremap_operations.featurematch.featurememgraph.featurememgraph_bfs.featurememgraph_wshortest.featuremerge.featureparameters.featurestring_operators.featureunion.featureupdate_clauses.featurewith.feature
graphs
openCypher_M09
features
Aggregation.featureAggregationAcceptance.featureColumnNameAcceptance.featureComparability.featureComparisonOperatorAcceptance.featureCreate.featureCreateAcceptance.featureDeleteAcceptance.featureEqualsAcceptance.featureExpressionAcceptance.featureFunctionsAcceptance.featureJoinAcceptance.featureKeysAcceptance.featureLabelsAcceptance.featureLargeCreateQuery.featureLargeIntegerEquality.featureListComprehension.featureLiterals.featureMatchAcceptance.featureMatchAcceptance2.featureMatchingSelfRelationships.featureMergeIntoAcceptance.featureMergeNodeAcceptance.featureMergeRelationshipAcceptance.featureMiscellaneousErrorAcceptance.featureNullAcceptance.featureOptionalMatch.featureOptionalMatchAcceptance.featureOrderByAcceptance.featurePathEquality.featurePatternComprehension.featureProcedureCallAcceptance.featureRemoveAcceptance.featureReturnAcceptance.featureReturnAcceptance2.featureSemanticErrorAcceptance.featureSetAcceptance.featureSkipLimitAcceptance.featureStartingPointAcceptance.featureStartsWithAcceptance.featureSyntaxErrorAcceptance.featureTernaryLogicAcceptance.featureTriadicSelection.featureTypeConversionFunctions.featureUnionAcceptance.featureUnwindAcceptance.featureVarLengthAcceptance.featureVarLengthAcceptance2.featureWhereAcceptance.featureWithAcceptance.feature
graphs
stackoverflow_answers
unstable/features
qa
10
.github/workflows/diff.yaml
vendored
10
.github/workflows/diff.yaml
vendored
@ -260,16 +260,18 @@ jobs:
|
||||
name: "Macro benchmark summary"
|
||||
path: macro_benchmark_summary.txt
|
||||
|
||||
- name: Run quality assurance tests
|
||||
- name: Run GQL Behave tests
|
||||
run: |
|
||||
cd tests/qa
|
||||
cd tests/gql_behave
|
||||
./continuous_integration
|
||||
|
||||
- name: Save quality assurance status
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "Quality assurance status"
|
||||
path: tests/qa/quality_assurance_status.txt
|
||||
name: "GQL Behave Status"
|
||||
path: |
|
||||
tests/gql_behave/gql_behave_status.csv
|
||||
tests/gql_behave/gql_behave_status.html
|
||||
|
||||
- name: Run stress test (plain)
|
||||
run: |
|
||||
|
10
.github/workflows/release.yaml
vendored
10
.github/workflows/release.yaml
vendored
@ -268,16 +268,18 @@ jobs:
|
||||
--num-database-workers 9 --num-clients-workers 30 \
|
||||
--no-strict
|
||||
|
||||
- name: Run quality assurance tests
|
||||
- name: Run GQL Behave tests
|
||||
run: |
|
||||
cd tests/qa
|
||||
cd tests/gql_behave
|
||||
./continuous_integration
|
||||
|
||||
- name: Save quality assurance status
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "Quality assurance status"
|
||||
path: tests/qa/quality_assurance_status.txt
|
||||
name: "GQL Behave Status"
|
||||
path: |
|
||||
tests/gql_behave/gql_behave_status.csv
|
||||
tests/gql_behave/gql_behave_status.html
|
||||
|
||||
- name: Run stress test (plain)
|
||||
run: |
|
||||
|
10
.github/workflows/release_centos.yaml
vendored
10
.github/workflows/release_centos.yaml
vendored
@ -267,16 +267,18 @@ jobs:
|
||||
--num-database-workers 9 --num-clients-workers 30 \
|
||||
--no-strict
|
||||
|
||||
- name: Run quality assurance tests
|
||||
- name: Run GQL Behave tests
|
||||
run: |
|
||||
cd tests/qa
|
||||
cd tests/gql_behave
|
||||
./continuous_integration
|
||||
|
||||
- name: Save quality assurance status
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "Quality assurance status"
|
||||
path: tests/qa/quality_assurance_status.txt
|
||||
name: "GQL Behave Status"
|
||||
path: |
|
||||
tests/gql_behave/gql_behave_status.csv
|
||||
tests/gql_behave/gql_behave_status.html
|
||||
|
||||
- name: Run stress test (plain)
|
||||
run: |
|
||||
|
4
init
4
init
@ -86,8 +86,8 @@ cd libs
|
||||
./setup.sh
|
||||
cd ..
|
||||
|
||||
# setup qa dependencies
|
||||
setup_virtualenv tests/qa
|
||||
# setup gql_behave dependencies
|
||||
setup_virtualenv tests/gql_behave
|
||||
|
||||
# setup stress dependencies
|
||||
setup_virtualenv tests/stress
|
||||
|
@ -3,7 +3,6 @@
|
||||
|
||||
#include <benchmark/benchmark.h>
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// THIS INCLUDE SHOULD ALWAYS COME BEFORE THE
|
||||
// OTHER INCLUDES
|
||||
|
4
tests/gql_behave/.gitignore
vendored
Normal file
4
tests/gql_behave/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
ve3/
|
||||
*.pyc
|
||||
gql_behave_status.csv
|
||||
gql_behave_status.html
|
@ -1,23 +1,29 @@
|
||||
# Memgraph quality assurance
|
||||
# Memgraph GQL Behave Tests
|
||||
|
||||
Python script used to run quality assurance tests against Memgraph.
|
||||
To run the script execute:
|
||||
Python script used to run graph query language behavior tests against Memgraph.
|
||||
|
||||
To run the script please execute:
|
||||
```
|
||||
source ve3/bin/activate
|
||||
./qa.py --help
|
||||
./qa.py memgraph_V1
|
||||
./run.py --help
|
||||
./run.py memgraph_V1
|
||||
```
|
||||
|
||||
The script requires one positional parameter that specifies which test suite
|
||||
should be executed. All available test suites can be found in the `tests/`
|
||||
directory.
|
||||
|
||||
## openCypher TCK tests
|
||||
## Graph Sizes
|
||||
|
||||
IMPORTANT: Please prepare small graphs, up to 1000 nodes+edges because this
|
||||
engine is not optimized to run on a huge graphs. Furthermore, semantics should
|
||||
always be tested on a small scale.
|
||||
|
||||
## openCypher TCK Tests
|
||||
|
||||
The script uses Behave to run Cucumber tests.
|
||||
|
||||
Some gotchas exist when adding openCypher TCK tests to our QA engine:
|
||||
Some gotchas exist when adding openCypher TCK tests to the engine:
|
||||
|
||||
- In some tests example injection did not work. Behave stores the first row in
|
||||
Cucumber tables as headings and the example injection failed to work. To
|
||||
@ -34,10 +40,9 @@ Some gotchas exist when adding openCypher TCK tests to our QA engine:
|
||||
`Comparability.feature` tests are failing because integers are compared to
|
||||
strings what is not allowed in openCypher.
|
||||
|
||||
## QA engine issues:
|
||||
## The Engine Issues
|
||||
|
||||
Comparing tables with ordering doesn't always work, example:
|
||||
|
||||
```
|
||||
ORDER BY x DESC
|
||||
| x | y | | x | y |
|
||||
@ -47,11 +52,9 @@ ORDER BY x DESC
|
||||
```
|
||||
|
||||
Side effect aren't tracked or verified, example:
|
||||
|
||||
```
|
||||
| +properties | 1 |
|
||||
| -properties | 1 |
|
||||
```
|
||||
|
||||
This is because Memgraph currently doesn't give out the list of side effects
|
||||
that happend on query execution.
|
||||
that happend during query execution.
|
@ -42,14 +42,14 @@ def wait_for_server(port, delay=0.01):
|
||||
time.sleep(delay)
|
||||
|
||||
|
||||
def generate_measurements(suite, result_path):
|
||||
def generate_result_csv(suite, result_path):
|
||||
if not os.path.exists(result_path):
|
||||
return ""
|
||||
with open(result_path) as f:
|
||||
result = json.load(f)
|
||||
ret = ""
|
||||
for i in ["total", "passed"]:
|
||||
ret += "{}.{} {}\n".format(suite, i, result[i])
|
||||
ret += "{},{},{}\n".format(suite, i, result[i])
|
||||
return ret
|
||||
|
||||
|
||||
@ -61,17 +61,18 @@ def generate_status(suite, result_path, required):
|
||||
total = result["total"]
|
||||
passed = result["passed"]
|
||||
ratio = passed / total
|
||||
msg = "{} / {} //({:.2%})//".format(passed, total, ratio)
|
||||
msg = "{} / {} ({:.2%})".format(passed, total, ratio)
|
||||
if required:
|
||||
if passed == total:
|
||||
msg += " {icon check color=green}"
|
||||
msg += " 👍" # +1 emoji
|
||||
else:
|
||||
msg += " {icon times color=red}"
|
||||
msg += " ⛔" # no entry emoji
|
||||
return (msg, passed, total)
|
||||
|
||||
|
||||
def generate_remarkup(data):
|
||||
ret = "==== Quality assurance status: ====\n\n"
|
||||
def generate_result_html(data):
|
||||
ret = "<!DOCTYPE html>\n"
|
||||
ret += "<h1>Memgraph GQL Behave Tests Status</h1>\n"
|
||||
ret += "<table>\n"
|
||||
for row in data:
|
||||
ret += " <tr>\n"
|
||||
@ -147,8 +148,8 @@ def main():
|
||||
memgraph.stop()
|
||||
|
||||
# Results storage
|
||||
measurements = ""
|
||||
status_data = [["Suite", "Scenarios"]]
|
||||
result_csv = "suite,status,quantity\n"
|
||||
status_data = [["Suite", "Status"]]
|
||||
mandatory_fails = []
|
||||
|
||||
# Run suites
|
||||
@ -160,7 +161,7 @@ def main():
|
||||
suite["stats_file"] = os.path.join(output_dir.name,
|
||||
suite["name"] + ".json")
|
||||
cmd = [venv_python, "-u",
|
||||
os.path.join(SCRIPT_DIR, "qa.py"),
|
||||
os.path.join(SCRIPT_DIR, "run.py"),
|
||||
"--stats-file", suite["stats_file"],
|
||||
suite["test_suite"]]
|
||||
|
||||
@ -173,33 +174,32 @@ def main():
|
||||
suite["must_pass"])
|
||||
|
||||
status_data.append([suite["name"], suite_status])
|
||||
measurements += generate_measurements(suite["name"],
|
||||
suite["stats_file"])
|
||||
result_csv += generate_result_csv(suite["name"],
|
||||
suite["stats_file"])
|
||||
|
||||
if suite["must_pass"] and suite_passed != suite_total:
|
||||
mandatory_fails.append(suite["name"])
|
||||
break
|
||||
|
||||
# Create status message
|
||||
qa_status_message = generate_remarkup(status_data)
|
||||
result_html = generate_result_html(status_data)
|
||||
|
||||
# Create the report file
|
||||
qa_status_path = os.path.join(SCRIPT_DIR, "quality_assurance_status.txt")
|
||||
with open(qa_status_path, "w") as f:
|
||||
f.write(qa_status_message)
|
||||
result_html_path = os.path.join(SCRIPT_DIR, "gql_behave_status.html")
|
||||
with open(result_html_path, "w") as f:
|
||||
f.write(result_html)
|
||||
|
||||
# Create the measurements file
|
||||
measurements_path = os.path.join(SCRIPT_DIR, ".apollo_measurements")
|
||||
with open(measurements_path, "w") as f:
|
||||
f.write(measurements)
|
||||
result_csv_path = os.path.join(SCRIPT_DIR, "gql_behave_status.csv")
|
||||
with open(result_csv_path, "w") as f:
|
||||
f.write(result_csv)
|
||||
|
||||
print("Status is generated in %s" % qa_status_path)
|
||||
print("Measurements are generated in %s" % measurements_path)
|
||||
print(f'CSV status is generated in {result_csv_path}')
|
||||
print(f'HTML status is generated in {result_html_path}')
|
||||
|
||||
# Check if tests failed
|
||||
if mandatory_fails != []:
|
||||
sys.exit("Some tests that must pass have failed -- %s"
|
||||
% str(mandatory_fails))
|
||||
sys.exit(f'Some tests that must pass have failed: {mandatory_fails}')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
@ -4,7 +4,7 @@ import json
|
||||
import logging
|
||||
import sys
|
||||
from steps.test_parameters import TestParameters
|
||||
from neo4j.v1 import GraphDatabase, basic_auth
|
||||
from neo4j import GraphDatabase, basic_auth
|
||||
|
||||
|
||||
# Helper class and functions
|
6
tests/gql_behave/requirements.txt
Normal file
6
tests/gql_behave/requirements.txt
Normal file
@ -0,0 +1,6 @@
|
||||
behave==1.2.6
|
||||
neo4j-driver==4.1.1
|
||||
parse==1.18.0
|
||||
parse-type==0.5.2
|
||||
PyYAML==5.3.1
|
||||
six==1.15.0
|
@ -3,7 +3,7 @@
|
||||
import database
|
||||
import parser
|
||||
from behave import given, then, step, when
|
||||
from neo4j.v1.types import Node, Path, Relationship
|
||||
from neo4j.graph import Node, Path, Relationship
|
||||
|
||||
|
||||
@given('parameters are')
|
||||
@ -34,7 +34,7 @@ def executing_query_step(context):
|
||||
context.text, context, context.test_parameters.get_parameters())
|
||||
|
||||
|
||||
def parse_props(prop_json):
|
||||
def parse_props(props_key_value):
|
||||
"""
|
||||
Function used to parse properties from map of properties to string.
|
||||
|
||||
@ -43,21 +43,21 @@ def parse_props(prop_json):
|
||||
@return:
|
||||
Map of properties in string format.
|
||||
"""
|
||||
if not prop_json:
|
||||
if not props_key_value:
|
||||
return ""
|
||||
properties = "{"
|
||||
for prop in prop_json:
|
||||
if prop_json[prop] is None:
|
||||
properties += prop + ": null, "
|
||||
elif isinstance(prop_json[prop], str):
|
||||
properties += prop + ": " + "'" + prop_json[prop] + "', "
|
||||
elif isinstance(prop_json[prop], bool):
|
||||
if prop_json[prop]:
|
||||
properties += prop + ": true, "
|
||||
for key, value in props_key_value:
|
||||
if value is None:
|
||||
properties += key + ": null, "
|
||||
elif isinstance(value, str):
|
||||
properties += key + ": " + "'" + value + "', "
|
||||
elif isinstance(value, bool):
|
||||
if value:
|
||||
properties += key + ": true, "
|
||||
else:
|
||||
properties += prop + ": false, "
|
||||
properties += key + ": false, "
|
||||
else:
|
||||
properties += prop + ": " + str(prop_json[prop]) + ", "
|
||||
properties += key + ": " + str(value) + ", "
|
||||
properties = properties[:-2]
|
||||
properties += "}"
|
||||
return properties
|
||||
@ -69,9 +69,8 @@ def to_string(element):
|
||||
the string is same as format of a result given in cucumber test.
|
||||
|
||||
@param element:
|
||||
Can be None, string, bool, number, list, dict or any of
|
||||
neo4j.v1.types Node, Path, Relationship. Element which
|
||||
will be parsed.
|
||||
Can be None, string, bool, number, list, dict or any of neo4j.graph
|
||||
Node, Path, Relationship. Element which will be parsed.
|
||||
@return:
|
||||
String of parsed element.
|
||||
"""
|
||||
@ -85,10 +84,10 @@ def to_string(element):
|
||||
if element.labels:
|
||||
sol += ':' + ': '.join(element.labels)
|
||||
|
||||
if element.properties:
|
||||
if element.keys():
|
||||
if element.labels:
|
||||
sol += ' '
|
||||
sol += parse_props(element.properties)
|
||||
sol += parse_props(element.items())
|
||||
|
||||
sol += ")"
|
||||
return sol
|
||||
@ -98,9 +97,9 @@ def to_string(element):
|
||||
sol = "[:"
|
||||
if element.type:
|
||||
sol += element.type
|
||||
if element.properties:
|
||||
if element.keys():
|
||||
sol += ' '
|
||||
sol += parse_props(element.properties)
|
||||
sol += parse_props(element.items())
|
||||
sol += "]"
|
||||
return sol
|
||||
|
||||
@ -111,7 +110,7 @@ def to_string(element):
|
||||
nodes = []
|
||||
|
||||
for rel in element.relationships:
|
||||
edges.append([rel.start, to_string(rel)])
|
||||
edges.append([rel.start_node.id, to_string(rel)])
|
||||
|
||||
for node in element.nodes:
|
||||
nodes.append([node.id, to_string(node)])
|
15
tests/gql_behave/tests/config.yaml
Normal file
15
tests/gql_behave/tests/config.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
- name: memgraph_V1
|
||||
test_suite: memgraph_V1
|
||||
must_pass: true
|
||||
|
||||
- name: openCypher_M09
|
||||
test_suite: openCypher_M09
|
||||
must_pass: false
|
||||
|
||||
- name: stackoverflow_answers
|
||||
test_suite: stackoverflow_answers
|
||||
must_pass: true
|
||||
|
||||
- name: unstable
|
||||
test_suite: unstable
|
||||
must_pass: false
|
7
tests/qa/.gitignore
vendored
7
tests/qa/.gitignore
vendored
@ -1,7 +0,0 @@
|
||||
*.swo
|
||||
*.swn
|
||||
*.swp
|
||||
*~
|
||||
*.pyc
|
||||
ve3/
|
||||
quality_assurance_status.txt
|
@ -1,6 +0,0 @@
|
||||
behave==1.2.5
|
||||
neo4j-driver==1.2.0
|
||||
parse==1.8.0
|
||||
parse-type==0.3.4
|
||||
PyYAML==3.12
|
||||
six==1.10.0
|
@ -1,154 +0,0 @@
|
||||
Feature: European Backpacking Index Example
|
||||
Scenario: List the top 10 cheapest hotels in the dataset
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH (n:City)
|
||||
RETURN n.name, n.cheapest_hostel, n.cost_per_night_USD, n.hostel_url
|
||||
ORDER BY n.cost_per_night_USD LIMIT 10;
|
||||
"""
|
||||
Then the result should be:
|
||||
| n.name | n.cheapest_hostel | n.cost_per_night_USD | n.hostel_url |
|
||||
| 'Kiev' | 'ZigZag Hostel' | 5.7 | 'https://www.priceoftravel.com/AKievHostel' |
|
||||
| 'Belgrade' | 'Hostel Inn Downtown' | 6.1628 | 'https://www.priceoftravel.com/ABelgradeHostel' |
|
||||
| 'Saint Petersburg' | 'Plosaty Hostel' | 7.14 | 'https://www.priceoftravel.com/AStPetersburgHostel' |
|
||||
| 'Santorini' | 'Youth Hostel Anna' | 7.44 | 'https://www.priceoftravel.com/ASantoriniHostel' |
|
||||
| 'Istanbul' | 'Chambers of the Boheme' | 7.9075 | 'https://www.priceoftravel.com/AIstanbulHostel' |
|
||||
| 'Riga' | 'Central Hostel Riga' | 8.06 | 'https://www.priceoftravel.com/ARigaHostel' |
|
||||
| 'Krakow' | 'Pillows Party Hostel' | 8.236 | 'https://www.priceoftravel.com/AKrakowHostel' |
|
||||
| 'Budapest' | 'Sziget City Hostel' | 8.936 | 'https://www.priceoftravel.com/ABudapestHostel' |
|
||||
| 'Zagreb' | 'Hostel Temza' | 9.18 | 'https://www.priceoftravel.com/AZagrebHostel' |
|
||||
| 'Bucharest' | 'Little Bucharest Bar & Hostel' | 9.315 | 'https://www.priceoftravel.com/ABucharestHostel' |
|
||||
|
||||
|
||||
Scenario: List the cheapest hotels in Croatia sorted by total price
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH (c:City)-[:Inside]->(:Country {name: "Croatia"})
|
||||
RETURN c.name, c.cheapest_hostel, c.total_USD
|
||||
ORDER BY c.total_USD;
|
||||
"""
|
||||
Then the result should be:
|
||||
| c.name | c.cheapest_hostel | c.total_USD |
|
||||
| 'Zagreb' | 'Hostel Temza' | 38.08 |
|
||||
| 'Split' | 'CroParadise Green Hostel' | 45.9799 |
|
||||
| 'Dubrovnik' | 'Hostel City Central Old Town' | 80.036 |
|
||||
|
||||
|
||||
Scenario: Sort the countries by number of cheap hotels
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH (n:Country)<-[:Inside]-(m:City)
|
||||
RETURN n.name AS CountryName, COUNT(m) AS HostelCount
|
||||
ORDER BY HostelCount DESC, CountryName LIMIT 10;
|
||||
"""
|
||||
Then the result should be:
|
||||
| CountryName | HostelCount |
|
||||
| 'Italy' | 5 |
|
||||
| 'Spain' | 4 |
|
||||
| 'Croatia' | 3 |
|
||||
| 'Germany' | 3 |
|
||||
| 'Austria' | 2 |
|
||||
| 'Belgium' | 2 |
|
||||
| 'Czech Republic' | 2 |
|
||||
| 'France' | 2 |
|
||||
| 'Greece' | 2 |
|
||||
| 'Norway' | 2 |
|
||||
|
||||
Scenario: Shortest path from Spain to Russia (BFS)
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH p = (n:Country {name: "Spain"})
|
||||
-[r:Borders * bfs]-
|
||||
(m:Country {name: "Russia"})
|
||||
UNWIND (nodes(p)) AS rows
|
||||
RETURN rows.name;
|
||||
"""
|
||||
Then the result should be:
|
||||
| rows.name |
|
||||
| 'Spain' |
|
||||
| 'France' |
|
||||
| 'Germany' |
|
||||
| 'Poland' |
|
||||
| 'Russia' |
|
||||
|
||||
Scenario: Shortest path from Bratislava to Madrid with Euro as local currency
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH p = (:City {name: "Bratislava"})
|
||||
-[:CloseTo * bfs (e, v | v.local_currency = "Euro")]-
|
||||
(:City {name: "Madrid"})
|
||||
UNWIND (nodes(p)) AS rows
|
||||
RETURN rows.name;
|
||||
"""
|
||||
Then the result should be:
|
||||
| rows.name |
|
||||
| 'Bratislava' |
|
||||
| 'Salzburg' |
|
||||
| 'Milan' |
|
||||
| 'Nice' |
|
||||
| 'Madrid' |
|
||||
|
||||
|
||||
Scenario: Cheapest trip from Brussels to Athens with no EU border crossings
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH p = (:City {name: "Brussels"})
|
||||
-[:CloseTo * wShortest(e, v | v.cost_per_night_USD) total_cost (e, v | e.eu_border=FALSE)]-
|
||||
(:City {name: "Athens"})
|
||||
WITH extract(city in nodes(p) | city.name) AS trip, total_cost
|
||||
RETURN trip, total_cost;
|
||||
"""
|
||||
Then the result should be:
|
||||
| trip | total_cost |
|
||||
| ['Brussels', 'Berlin', 'Salzburg', 'Budapest', 'Bucharest', 'Sofia', 'Athens'] | 97.5275 |
|
||||
|
||||
|
||||
Scenario: Party trip from Madrid to Vienna, sightseeing to Belgrade
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH p = (:City {name: "Madrid"})
|
||||
-[:CloseTo * wShortest(e, v | v.cost_per_night_USD + v.drinks_USD) cost1]-
|
||||
(:City {name: "Vienna"})
|
||||
-[:CloseTo * wShortest(e, v | v.cost_per_night_USD + v.attractions_USD) cost2]-
|
||||
(:City {name: "Belgrade"})
|
||||
WITH extract(city in nodes(p) | city.name) AS trip, cost1, cost2
|
||||
RETURN trip, cost1 + cost2 AS total_cost;
|
||||
"""
|
||||
Then the result should be:
|
||||
| trip | total_cost |
|
||||
| ['Madrid', 'Nice', 'Naples', 'Vienna', 'Budapest', 'Belgrade'] | 143.918 |
|
||||
|
||||
|
||||
Scenario: Top 10 cheapest routes from Paris to Zagreb sorted by total price and city count
|
||||
Given graph "backpacking"
|
||||
When executing query:
|
||||
"""
|
||||
MATCH path = (n:City {name: "Paris"})-[:CloseTo *3..5]-(m:City {name: "Zagreb"})
|
||||
WITH nodes(path) AS trip
|
||||
WITH extract(city in trip | [city, trip]) AS lst
|
||||
UNWIND lst AS rows
|
||||
WITH rows[0] AS city, extract(city in rows[1] | city.name) AS trip
|
||||
RETURN trip,
|
||||
toInteger(sum(city.total_USD)) AS trip_cost_USD,
|
||||
count(trip) AS city_count
|
||||
ORDER BY trip_cost_USD, city_count DESC LIMIT 10;
|
||||
"""
|
||||
Then the result should be:
|
||||
| trip | trip_cost_USD | city_count |
|
||||
| ['Paris', 'Naples', 'Ljubljana', 'Zagreb'] | 240 | 4 |
|
||||
| ['Paris', 'Florence', 'Ljubljana', 'Zagreb'] | 255 | 4 |
|
||||
| ['Paris', 'Rome', 'Ljubljana', 'Zagreb'] | 263 | 4 |
|
||||
| ['Paris', 'Milan', 'Ljubljana', 'Zagreb'] | 266 | 4 |
|
||||
| ['Paris', 'Naples', 'Ljubljana', 'Budapest', 'Zagreb'] | 275 | 5 |
|
||||
| ['Paris', 'Hamburg', 'Krakow', 'Kiev', 'Budapest', 'Zagreb'] | 290 | 6 |
|
||||
| ['Paris', 'Florence', 'Ljubljana', 'Budapest', 'Zagreb'] | 291 | 5 |
|
||||
| ['Paris', 'Berlin', 'Krakow', 'Kiev', 'Budapest', 'Zagreb'] | 293 | 6 |
|
||||
| ['Paris', 'Rome', 'Ljubljana', 'Budapest', 'Zagreb'] | 298 | 5 |
|
||||
| ['Paris', 'Naples', 'Salzburg', 'Budapest', 'Zagreb'] | 298 | 5 |
|
@ -1,463 +0,0 @@
|
||||
CREATE (:City {id: 0, cheapest_hostel: "Flying Pig Downtown", hostel_url: "https://www.priceoftravel.com/AAmsterdamHostel", name: "Amsterdam", country: "Netherlands", local_currency: "Euro", local_currency_code: "EUR", rank: 52, total_USD: 106.764, attractions_USD: 19.84, cost_per_night_USD: 45.756, drinks_USD: 14.88, meals_USD: 19.344, transportation_USD: 6.944 });
|
||||
CREATE (:City {id: 1, cheapest_hostel: "Zorbas Hostel", hostel_url: "https://www.priceoftravel.com/AAthensHostel", name: "Athens", country: "Greece", local_currency: "Euro", local_currency_code: "EUR", rank: 23, total_USD: 58.9, attractions_USD: 9.92, cost_per_night_USD: 12.4, drinks_USD: 9.3, meals_USD: 23.808, transportation_USD: 3.472 });
|
||||
CREATE (:City {id: 2, cheapest_hostel: "Amistat Beach Hostel Barcelona", hostel_url: "https://www.priceoftravel.com/ABarcelonaHostel", name: "Barcelona", country: "Spain", local_currency: "Euro", local_currency_code: "EUR", rank: 38, total_USD: 80.104, attractions_USD: 16.12, cost_per_night_USD: 23.684, drinks_USD: 11.16, meals_USD: 23.808, transportation_USD: 5.332 });
|
||||
CREATE (:City {id: 3, cheapest_hostel: "Hostel Inn Downtown", hostel_url: "https://www.priceoftravel.com/ABelgradeHostel", name: "Belgrade", country: "Serbia", local_currency: "Euro", local_currency_code: "EUR", rank: 3, total_USD: 29.2268, attractions_USD: 3.72, cost_per_night_USD: 6.1628, drinks_USD: 5.58, meals_USD: 11.904, transportation_USD: 1.86 });
|
||||
CREATE (:City {id: 4, cheapest_hostel: "HI Bergen Hostel Montana", hostel_url: "https://www.priceoftravel.com/ABergenHostel", name: "Bergen", country: "Norway", local_currency: "Norwegian Kroner", local_currency_code: "NOK", rank: 46, total_USD: 97.071, attractions_USD: 7.8, cost_per_night_USD: 26.611, drinks_USD: 23.4, meals_USD: 31.2, transportation_USD: 8.06 });
|
||||
CREATE (:City {id: 5, cheapest_hostel: "Eastener House", hostel_url: "https://www.priceoftravel.com/ABerlinHostel", name: "Berlin", country: "Germany", local_currency: "Euro", local_currency_code: "EUR", rank: 31, total_USD: 73.408, attractions_USD: 14.88, cost_per_night_USD: 19.84, drinks_USD: 11.16, meals_USD: 20.832, transportation_USD: 6.696 });
|
||||
CREATE (:City {id: 6, cheapest_hostel: "Hostel Brickyard", hostel_url: "https://www.priceoftravel.com/ABratislavaHostel", name: "Bratislava", country: "Slovakia", local_currency: "Euro", local_currency_code: "EUR", rank: 14, total_USD: 43.772, attractions_USD: 4.96, cost_per_night_USD: 14.756, drinks_USD: 7.44, meals_USD: 14.88, transportation_USD: 1.736 });
|
||||
CREATE (:City {id: 7, cheapest_hostel: "St. Christopher’s Inn & Bauhaus Hostel", hostel_url: "https://www.priceoftravel.com/ABrugesHostel", name: "Bruges", country: "Belgium", local_currency: "Euro", local_currency_code: "EUR", rank: 37, total_USD: 79.918, attractions_USD: 7.44, cost_per_night_USD: 30.938, drinks_USD: 13.02, meals_USD: 25.296, transportation_USD: 3.224 });
|
||||
CREATE (:City {id: 8, cheapest_hostel: "Brxxl 5 City Centre Hostel", hostel_url: "https://www.priceoftravel.com/ABrusselsHostel", name: "Brussels", country: "Belgium", local_currency: "Euro", local_currency_code: "EUR", rank: 43, total_USD: 89.032, attractions_USD: 12.4, cost_per_night_USD: 29.76, drinks_USD: 14.88, meals_USD: 26.784, transportation_USD: 5.208 });
|
||||
CREATE (:City {id: 9, cheapest_hostel: "Little Bucharest Bar & Hostel", hostel_url: "https://www.priceoftravel.com/ABucharestHostel", name: "Bucharest", country: "Romania", local_currency: "Romanian Leu", local_currency_code: "RON", rank: 4, total_USD: 30.267, attractions_USD: 3.24, cost_per_night_USD: 9.315, drinks_USD: 4.05, meals_USD: 12.312, transportation_USD: 1.35 });
|
||||
CREATE (:City {id: 10, cheapest_hostel: "Sziget City Hostel", hostel_url: "https://www.priceoftravel.com/ABudapestHostel", name: "Budapest", country: "Hungary", local_currency: "Hungary Forint", local_currency_code: "HUF", rank: 6, total_USD: 35.616, attractions_USD: 7.2, cost_per_night_USD: 8.936, drinks_USD: 4.2, meals_USD: 12.48, transportation_USD: 2.8 });
|
||||
CREATE (:City {id: 11, cheapest_hostel: "Sleep in Heaven", hostel_url: "https://www.priceoftravel.com/ACopenhagenHostel", name: "Copenhagen", country: "Denmark", local_currency: "Danish Kroner", local_currency_code: "DKK", rank: 49, total_USD: 99.2069, attractions_USD: 13.6, cost_per_night_USD: 28.4869, drinks_USD: 20.4, meals_USD: 28.56, transportation_USD: 8.16 });
|
||||
CREATE (:City {id: 12, cheapest_hostel: "Egali Hostel", hostel_url: "https://www.priceoftravel.com/ADublinHostel", name: "Dublin", country: "Ireland", local_currency: "Euro", local_currency_code: "EUR", rank: 36, total_USD: 77.128, attractions_USD: 12.4, cost_per_night_USD: 18.6, drinks_USD: 18.6, meals_USD: 23.808, transportation_USD: 3.72 });
|
||||
CREATE (:City {id: 13, cheapest_hostel: "Hostel City Central Old Town", hostel_url: "https://www.priceoftravel.com/ADubrovnikHostel", name: "Dubrovnik", country: "Croatia", local_currency: "Croatian Kuna", local_currency_code: "HRK", rank: 35, total_USD: 80.036, attractions_USD: 17, cost_per_night_USD: 20.4, drinks_USD: 15.3, meals_USD: 23.256, transportation_USD: 4.08 });
|
||||
CREATE (:City {id: 14, cheapest_hostel: "High Street Hostel", hostel_url: "https://www.priceoftravel.com/AEdinburghHostel", name: "Edinburgh", country: "Scotland", local_currency: "British Pound", local_currency_code: "GBP", rank: 34, total_USD: 77.958, attractions_USD: 21.3, cost_per_night_USD: 17.182, drinks_USD: 12.78, meals_USD: 22.152, transportation_USD: 4.544 });
|
||||
CREATE (:City {id: 15, cheapest_hostel: "Hostel Santa Monaca", hostel_url: "https://www.priceoftravel.com/AFlorenceHostel", name: "Florence", country: "Italy", local_currency: "Euro", local_currency_code: "EUR", rank: 33, total_USD: 74.896, attractions_USD: 14.88, cost_per_night_USD: 23.56, drinks_USD: 11.16, meals_USD: 22.32, transportation_USD: 2.976 });
|
||||
CREATE (:City {id: 16, cheapest_hostel: "Instant Sleep Backpacker Hostel", hostel_url: "https://www.priceoftravel.com/AHamburgHostel", name: "Hamburg", country: "Germany", local_currency: "Euro", local_currency_code: "EUR", rank: 28, total_USD: 71.1264, attractions_USD: 12.4, cost_per_night_USD: 21.5264, drinks_USD: 11.16, meals_USD: 22.32, transportation_USD: 3.72 });
|
||||
CREATE (:City {id: 17, cheapest_hostel: "CheapSleep Helsinki", hostel_url: "https://www.priceoftravel.com/AHelsinkiHostel", name: "Helsinki", country: "Finland", local_currency: "Euro", local_currency_code: "EUR", rank: 48, total_USD: 94.0912, attractions_USD: 8.68, cost_per_night_USD: 28.6192, drinks_USD: 22.32, meals_USD: 28.272, transportation_USD: 6.2 });
|
||||
CREATE (:City {id: 18, cheapest_hostel: "Amistat Island Hostel Ibiza", hostel_url: "https://www.priceoftravel.com/AIbizaHostel", name: "Ibiza", country: "Spain", local_currency: "Euro", local_currency_code: "EUR", rank: 29, total_USD: 72.664, attractions_USD: 12.4, cost_per_night_USD: 23.56, drinks_USD: 11.16, meals_USD: 22.32, transportation_USD: 3.224 });
|
||||
CREATE (:City {id: 19, cheapest_hostel: "Happy Inn Lodge", hostel_url: "https://www.priceoftravel.com/AInterlakenHostel", name: "Interlaken", country: "Switzerland", local_currency: "Swiss Franc", local_currency_code: "CHF", rank: 47, total_USD: 92.988, attractions_USD: 10.5, cost_per_night_USD: 26.418, drinks_USD: 15.75, meals_USD: 40.32, transportation_USD: 0 });
|
||||
CREATE (:City {id: 20, cheapest_hostel: "Chambers of the Boheme", hostel_url: "https://www.priceoftravel.com/AIstanbulHostel", name: "Istanbul", country: "Turkey", local_currency: "Turkish Iira", local_currency_code: "TRY", rank: 10, total_USD: 34.5075, attractions_USD: 7.5, cost_per_night_USD: 7.9075, drinks_USD: 7.5, meals_USD: 9.6, transportation_USD: 2 });
|
||||
CREATE (:City {id: 21, cheapest_hostel: "ZigZag Hostel", hostel_url: "https://www.priceoftravel.com/AKievHostel", name: "Kiev", country: "Ukraine", local_currency: "Ukraine Hryvnia", local_currency_code: "UHR", rank: 1, total_USD: 26.486, attractions_USD: 0.57, cost_per_night_USD: 5.7, drinks_USD: 3.42, meals_USD: 16.416, transportation_USD: 0.38 });
|
||||
CREATE (:City {id: 22, cheapest_hostel: "Pillows Party Hostel", hostel_url: "https://www.priceoftravel.com/AKrakowHostel", name: "Krakow", country: "Poland", local_currency: "Polish Zlotych", local_currency_code: "PLN", rank: 2, total_USD: 28.42, attractions_USD: 4.64, cost_per_night_USD: 8.236, drinks_USD: 6.96, meals_USD: 6.96, transportation_USD: 1.624 });
|
||||
CREATE (:City {id: 23, cheapest_hostel: "Urban Garden Hostel", hostel_url: "https://www.priceoftravel.com/ALisbonHostel", name: "Lisbon", country: "Portugal", local_currency: "Euro", local_currency_code: "EUR", rank: 25, total_USD: 61.3304, attractions_USD: 9.92, cost_per_night_USD: 15.9464, drinks_USD: 11.16, meals_USD: 20.832, transportation_USD: 3.472 });
|
||||
CREATE (:City {id: 24, cheapest_hostel: "Hostel 24", hostel_url: "https://www.priceoftravel.com/ALjubljanaHostel", name: "Ljubljana", country: "Slovenia", local_currency: "Euro", local_currency_code: "EUR", rank: 18, total_USD: 51.4476, attractions_USD: 6.2, cost_per_night_USD: 14.7436, drinks_USD: 7.44, meals_USD: 20.088, transportation_USD: 2.976 });
|
||||
CREATE (:City {id: 25, cheapest_hostel: "St. Christopher’s Hammersmith", hostel_url: "https://www.priceoftravel.com/ALondonHostel", name: "London", country: "England", local_currency: "British Pound", local_currency_code: "GBP", rank: 51, total_USD: 104.654, attractions_USD: 21.3, cost_per_night_USD: 29.678, drinks_USD: 17.04, meals_USD: 29.82, transportation_USD: 6.816 });
|
||||
CREATE (:City {id: 26, cheapest_hostel: "Luxembourg City Hostel", hostel_url: "https://www.priceoftravel.com/ALuxembourgHostel", name: "Luxembourg City", country: "Luxembourg", local_currency: "Euro", local_currency_code: "EUR", rank: 40, total_USD: 81.158, attractions_USD: 7.44, cost_per_night_USD: 31.186, drinks_USD: 13.02, meals_USD: 24.552, transportation_USD: 4.96 });
|
||||
CREATE (:City {id: 27, cheapest_hostel: "Barbieri Sol Hostel", hostel_url: "https://www.priceoftravel.com/AMadridHostel", name: "Madrid", country: "Spain", local_currency: "Euro", local_currency_code: "EUR", rank: 27, total_USD: 65.968, attractions_USD: 12.4, cost_per_night_USD: 18.6, drinks_USD: 7.44, meals_USD: 23.808, transportation_USD: 3.72 });
|
||||
CREATE (:City {id: 28, cheapest_hostel: "Queen Hostel", hostel_url: "https://www.priceoftravel.com/AMilanHostel", name: "Milan", country: "Italy", local_currency: "Euro", local_currency_code: "EUR", rank: 44, total_USD: 85.436, attractions_USD: 12.4, cost_per_night_USD: 32.736, drinks_USD: 13.02, meals_USD: 22.32, transportation_USD: 4.96 });
|
||||
CREATE (:City {id: 29, cheapest_hostel: "Vagabond Hostel", hostel_url: "https://www.priceoftravel.com/AMoscowHostel", name: "Moscow", country: "Russia", local_currency: "Russian Ruble", local_currency_code: "RUB", rank: 26, total_USD: 60.622, attractions_USD: 6.8, cost_per_night_USD: 12.75, drinks_USD: 15.3, meals_USD: 24.072, transportation_USD: 1.7 });
|
||||
CREATE (:City {id: 30, cheapest_hostel: "Wombats City Hostel Munich", hostel_url: "https://www.priceoftravel.com/AMunichHostel", name: "Munich", country: "Germany", local_currency: "Euro", local_currency_code: "EUR", rank: 39, total_USD: 80.538, attractions_USD: 11.16, cost_per_night_USD: 27.466, drinks_USD: 11.16, meals_USD: 23.808, transportation_USD: 6.944 });
|
||||
CREATE (:City {id: 31, cheapest_hostel: "Fabric Hostel & Club", hostel_url: "https://www.priceoftravel.com/ANaplesHostel", name: "Naples", country: "Italy", local_currency: "Euro", local_currency_code: "EUR", rank: 24, total_USD: 59.768, attractions_USD: 11.16, cost_per_night_USD: 18.6, drinks_USD: 7.44, meals_USD: 19.344, transportation_USD: 3.224 });
|
||||
CREATE (:City {id: 32, cheapest_hostel: "Antares Hostel", hostel_url: "https://www.priceoftravel.com/ANiceHostel", name: "Nice", country: "France", local_currency: "Euro", local_currency_code: "EUR", rank: 30, total_USD: 73.284, attractions_USD: 9.92, cost_per_night_USD: 24.676, drinks_USD: 11.16, meals_USD: 23.808, transportation_USD: 3.72 });
|
||||
CREATE (:City {id: 33, cheapest_hostel: "Saga Poshtel Oslo Central", hostel_url: "https://www.priceoftravel.com/AOsloHostel", name: "Oslo", country: "Norway", local_currency: "Norwegian Kroner", local_currency_code: "NOK", rank: 53, total_USD: 117.91, attractions_USD: 9.1, cost_per_night_USD: 51.87, drinks_USD: 19.5, meals_USD: 29.64, transportation_USD: 7.8 });
|
||||
CREATE (:City {id: 34, cheapest_hostel: "Le Montclair by Hiphophostels", hostel_url: "https://www.priceoftravel.com/AParisHostel", name: "Paris", country: "France", local_currency: "Euro", local_currency_code: "EUR", rank: 45, total_USD: 91.0408, attractions_USD: 14.88, cost_per_night_USD: 31.5208, drinks_USD: 14.88, meals_USD: 25.296, transportation_USD: 4.464 });
|
||||
CREATE (:City {id: 35, cheapest_hostel: "Czech Inn", hostel_url: "https://www.priceoftravel.com/APragueHostel", name: "Prague", country: "Czech Republic", local_currency: "Czech Krona", local_currency_code: "CZK", rank: 19, total_USD: 53.41, attractions_USD: 14.7, cost_per_night_USD: 12.985, drinks_USD: 5.145, meals_USD: 18.228, transportation_USD: 2.352 });
|
||||
CREATE (:City {id: 36, cheapest_hostel: "Reykjavik Hostel Village", hostel_url: "https://www.priceoftravel.com/AReykjavikHostel", name: "Reykjavik", country: "Iceland", local_currency: "Iceland Kronur", local_currency_code: "ISK", rank: 54, total_USD: 113.86, attractions_USD: 15, cost_per_night_USD: 32.66, drinks_USD: 21, meals_USD: 37.2, transportation_USD: 8 });
|
||||
CREATE (:City {id: 37, cheapest_hostel: "Central Hostel Riga", hostel_url: "https://www.priceoftravel.com/ARigaHostel", name: "Riga", country: "Latvia", local_currency: "Euro", local_currency_code: "EUR", rank: 9, total_USD: 36.952, attractions_USD: 3.72, cost_per_night_USD: 8.06, drinks_USD: 7.44, meals_USD: 14.88, transportation_USD: 2.852 });
|
||||
CREATE (:City {id: 38, cheapest_hostel: "The Yellow", hostel_url: "https://www.priceoftravel.com/ARomeHostel", name: "Rome", country: "Italy", local_currency: "Euro", local_currency_code: "EUR", rank: 41, total_USD: 82.77, attractions_USD: 14.88, cost_per_night_USD: 29.202, drinks_USD: 11.16, meals_USD: 23.808, transportation_USD: 3.72 });
|
||||
CREATE (:City {id: 39, cheapest_hostel: "Plosaty Hostel", hostel_url: "https://www.priceoftravel.com/AStPetersburgHostel", name: "Saint Petersburg", country: "Russia", local_currency: "Russian Ruble", local_currency_code: "RUB", rank: 17, total_USD: 46.682, attractions_USD: 6.8, cost_per_night_USD: 7.14, drinks_USD: 10.2, meals_USD: 21.012, transportation_USD: 1.53 });
|
||||
CREATE (:City {id: 40, cheapest_hostel: "YoHo international Youth Hostel", hostel_url: "https://www.priceoftravel.com/ASalzburgHostel", name: "Salzburg", country: "Austria", local_currency: "Euro", local_currency_code: "EUR", rank: 32, total_USD: 74.152, attractions_USD: 12.4, cost_per_night_USD: 17.36, drinks_USD: 11.16, meals_USD: 26.784, transportation_USD: 6.448 });
|
||||
CREATE (:City {id: 41, cheapest_hostel: "Youth Hostel Anna", hostel_url: "https://www.priceoftravel.com/ASantoriniHostel", name: "Santorini", country: "Greece", local_currency: "Euro", local_currency_code: "EUR", rank: 16, total_USD: 47.492, attractions_USD: 3.72, cost_per_night_USD: 7.44, drinks_USD: 13.02, meals_USD: 19.344, transportation_USD: 3.968 });
|
||||
CREATE (:City {id: 42, cheapest_hostel: "Travellers Home Hostel", hostel_url: "https://www.priceoftravel.com/ASarajevoHostel", name: "Sarajevo", country: "Bosnia and Herzegovina", local_currency: "Euro", local_currency_code: "EUR", rank: 7, total_USD: 35.836, attractions_USD: 4.96, cost_per_night_USD: 9.858, drinks_USD: 4.65, meals_USD: 11.904, transportation_USD: 4.464 });
|
||||
CREATE (:City {id: 43, cheapest_hostel: "Hostel Mostel", hostel_url: "https://www.priceoftravel.com/ASofiaHostel", name: "Sofia", country: "Bulgaria", local_currency: "Bulgarian Leva", local_currency_code: "BGN", rank: 5, total_USD: 33.4215, attractions_USD: 3.78, cost_per_night_USD: 12.3165, drinks_USD: 4.725, meals_USD: 10.584, transportation_USD: 2.016 });
|
||||
CREATE (:City {id: 44, cheapest_hostel: "CroParadise Green Hostel", hostel_url: "https://www.priceoftravel.com/ASplitHostel", name: "Split", country: "Croatia", local_currency: "Croatian Kuna", local_currency_code: "HRK", rank: 15, total_USD: 45.9799, attractions_USD: 6.8, cost_per_night_USD: 11.8439, drinks_USD: 7.14, meals_USD: 17.136, transportation_USD: 3.06 });
|
||||
CREATE (:City {id: 45, cheapest_hostel: "City Backpackers Hostel", hostel_url: "https://www.priceoftravel.com/AStockholmHostel", name: "Stockholm", country: "Sweden", local_currency: "Swedish Kronor", local_currency_code: "SEK", rank: 50, total_USD: 95.16, attractions_USD: 18, cost_per_night_USD: 24.6, drinks_USD: 18, meals_USD: 25.92, transportation_USD: 8.64 });
|
||||
CREATE (:City {id: 46, cheapest_hostel: "Old Town Alur Hostel", hostel_url: "https://www.priceoftravel.com/ATallinnHostel", name: "Tallinn", country: "Estonia", local_currency: "Euro", local_currency_code: "EUR", rank: 20, total_USD: 52.576, attractions_USD: 7.44, cost_per_night_USD: 13.64, drinks_USD: 11.16, meals_USD: 17.856, transportation_USD: 2.48 });
|
||||
CREATE (:City {id: 47, cheapest_hostel: "Los Amigos Backpackers Hostel", hostel_url: "https://www.priceoftravel.com/ATenerifeHostel", name: "Tenerife", country: "Spain", local_currency: "Euro", local_currency_code: "EUR", rank: 21, total_USD: 55.18, attractions_USD: 6.2, cost_per_night_USD: 18.476, drinks_USD: 9.3, meals_USD: 17.856, transportation_USD: 3.348 });
|
||||
CREATE (:City {id: 48, cheapest_hostel: "Granny’s Inn Hostel", hostel_url: "https://www.priceoftravel.com/AVallettaHostel", name: "Valletta", country: "Malta", local_currency: "Euro", local_currency_code: "EUR", rank: 22, total_USD: 53.196, attractions_USD: 7.44, cost_per_night_USD: 13.392, drinks_USD: 9.3, meals_USD: 19.344, transportation_USD: 3.72 });
|
||||
CREATE (:City {id: 49, cheapest_hostel: "Generator Venice", hostel_url: "https://www.priceoftravel.com/AVeniceHostel", name: "Venice", country: "Italy", local_currency: "Euro", local_currency_code: "EUR", rank: 55, total_USD: 122.016, attractions_USD: 14.88, cost_per_night_USD: 50.84, drinks_USD: 14.88, meals_USD: 32.736, transportation_USD: 8.68 });
|
||||
CREATE (:City {id: 50, cheapest_hostel: "Wombats City Hostel & at The Naschmarkt", hostel_url: "https://www.priceoftravel.com/AViennaHostel", name: "Vienna", country: "Austria", local_currency: "Euro", local_currency_code: "EUR", rank: 42, total_USD: 83.638, attractions_USD: 17.36, cost_per_night_USD: 22.506, drinks_USD: 13.02, meals_USD: 25.296, transportation_USD: 5.456 });
|
||||
CREATE (:City {id: 51, cheapest_hostel: "Downtown Forest Hostel & Camping", hostel_url: "https://www.priceoftravel.com/AVilniusHostel", name: "Vilnius", country: "Lithuania", local_currency: "Euro", local_currency_code: "EUR", rank: 13, total_USD: 39.928, attractions_USD: 3.72, cost_per_night_USD: 9.92, drinks_USD: 7.44, meals_USD: 16.368, transportation_USD: 2.48 });
|
||||
CREATE (:City {id: 52, cheapest_hostel: "Tatamka Hostel", hostel_url: "https://www.priceoftravel.com/AWarsawHostel", name: "Warsaw", country: "Poland", local_currency: "Polish Zlotych", local_currency_code: "PLN", rank: 11, total_USD: 38.6367, attractions_USD: 7.83, cost_per_night_USD: 10.3907, drinks_USD: 6.96, meals_USD: 11.484, transportation_USD: 1.972 });
|
||||
CREATE (:City {id: 53, cheapest_hostel: "Hostel Temza", hostel_url: "https://www.priceoftravel.com/AZagrebHostel", name: "Zagreb", country: "Croatia", local_currency: "Croatian Kuna", local_currency_code: "HRK", rank: 8, total_USD: 38.08, attractions_USD: 5.1, cost_per_night_USD: 9.18, drinks_USD: 6.12, meals_USD: 14.28, transportation_USD: 3.4 });
|
||||
CREATE (:City {id: 54, cheapest_hostel: "City Backpacker Hostel Biber", hostel_url: "https://www.priceoftravel.com/AZurichHostel", name: "Zurich", country: "Switzerland", local_currency: "Swiss Franc", local_currency_code: "CHF", rank: 56, total_USD: 123.123, attractions_USD: 15.75, cost_per_night_USD: 40.803, drinks_USD: 22.05, meals_USD: 39.06, transportation_USD: 5.46 });
|
||||
CREATE (:City {id: 55, cheapest_hostel: "Hostel Merlin", hostel_url: "https://www.priceoftravel.com/AceskyKrumlovHostel", name: "Český Krumlov", country: "Czech Republic", local_currency: "Czech Krona", local_currency_code: "CZK", rank: 12, total_USD: 40.376, attractions_USD: 4.9, cost_per_night_USD: 14.602, drinks_USD: 4.41, meals_USD: 14.112, transportation_USD: 2.352 });
|
||||
CREATE (:Country {id: 0, name: "Austria" });
|
||||
CREATE (:Country {id: 1, name: "Belgium" });
|
||||
CREATE (:Country {id: 2, name: "Bosnia and Herzegovina" });
|
||||
CREATE (:Country {id: 3, name: "Bulgaria" });
|
||||
CREATE (:Country {id: 4, name: "Croatia" });
|
||||
CREATE (:Country {id: 5, name: "Czech Republic" });
|
||||
CREATE (:Country {id: 6, name: "Denmark" });
|
||||
CREATE (:Country {id: 7, name: "England" });
|
||||
CREATE (:Country {id: 8, name: "Estonia" });
|
||||
CREATE (:Country {id: 9, name: "Finland" });
|
||||
CREATE (:Country {id: 10, name: "France" });
|
||||
CREATE (:Country {id: 11, name: "Germany" });
|
||||
CREATE (:Country {id: 12, name: "Greece" });
|
||||
CREATE (:Country {id: 13, name: "Hungary" });
|
||||
CREATE (:Country {id: 14, name: "Iceland" });
|
||||
CREATE (:Country {id: 15, name: "Ireland" });
|
||||
CREATE (:Country {id: 16, name: "Italy" });
|
||||
CREATE (:Country {id: 17, name: "Latvia" });
|
||||
CREATE (:Country {id: 18, name: "Lithuania" });
|
||||
CREATE (:Country {id: 19, name: "Luxembourg" });
|
||||
CREATE (:Country {id: 20, name: "Malta" });
|
||||
CREATE (:Country {id: 21, name: "Netherlands" });
|
||||
CREATE (:Country {id: 22, name: "Norway" });
|
||||
CREATE (:Country {id: 23, name: "Poland" });
|
||||
CREATE (:Country {id: 24, name: "Portugal" });
|
||||
CREATE (:Country {id: 25, name: "Romania" });
|
||||
CREATE (:Country {id: 26, name: "Russia" });
|
||||
CREATE (:Country {id: 27, name: "Scotland" });
|
||||
CREATE (:Country {id: 28, name: "Serbia" });
|
||||
CREATE (:Country {id: 29, name: "Slovakia" });
|
||||
CREATE (:Country {id: 30, name: "Slovenia" });
|
||||
CREATE (:Country {id: 31, name: "Spain" });
|
||||
CREATE (:Country {id: 32, name: "Sweden" });
|
||||
CREATE (:Country {id: 33, name: "Switzerland" });
|
||||
CREATE (:Country {id: 34, name: "Turkey" });
|
||||
CREATE (:Country {id: 35, name: "Ukraine" });
|
||||
MATCH (country1:Country {id: 11}) MATCH (country2:Country {id: 19}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 1}) MATCH (country2:Country {id: 10}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 1}) MATCH (country2:Country {id: 19}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 23}) MATCH (country2:Country {id: 26}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 29}) MATCH (country2:Country {id: 35}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 11}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 7}) MATCH (country2:Country {id: 15}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 3}) MATCH (country2:Country {id: 25}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 24}) MATCH (country2:Country {id: 31}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 5}) MATCH (country2:Country {id: 11}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 13}) MATCH (country2:Country {id: 35}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 2}) MATCH (country2:Country {id: 4}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 10}) MATCH (country2:Country {id: 31}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 22}) MATCH (country2:Country {id: 32}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 5}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 11}) MATCH (country2:Country {id: 23}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 33}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 4}) MATCH (country2:Country {id: 30}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 10}) MATCH (country2:Country {id: 33}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 13}) MATCH (country2:Country {id: 30}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 10}) MATCH (country2:Country {id: 16}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 10}) MATCH (country2:Country {id: 11}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 12}) MATCH (country2:Country {id: 34}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 7}) MATCH (country2:Country {id: 31}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 22}) MATCH (country2:Country {id: 26}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 6}) MATCH (country2:Country {id: 11}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 25}) MATCH (country2:Country {id: 35}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 8}) MATCH (country2:Country {id: 26}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 18}) MATCH (country2:Country {id: 23}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 26}) MATCH (country2:Country {id: 35}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 9}) MATCH (country2:Country {id: 32}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 16}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 9}) MATCH (country2:Country {id: 22}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 3}) MATCH (country2:Country {id: 12}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 16}) MATCH (country2:Country {id: 30}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 7}) MATCH (country2:Country {id: 27}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 13}) MATCH (country2:Country {id: 29}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 17}) MATCH (country2:Country {id: 26}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 4}) MATCH (country2:Country {id: 28}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 29}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 11}) MATCH (country2:Country {id: 21}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 16}) MATCH (country2:Country {id: 33}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 5}) MATCH (country2:Country {id: 23}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 2}) MATCH (country2:Country {id: 28}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 5}) MATCH (country2:Country {id: 29}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 1}) MATCH (country2:Country {id: 11}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 25}) MATCH (country2:Country {id: 28}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 3}) MATCH (country2:Country {id: 28}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 13}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 9}) MATCH (country2:Country {id: 26}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 8}) MATCH (country2:Country {id: 17}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 13}) MATCH (country2:Country {id: 25}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 15}) MATCH (country2:Country {id: 27}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 3}) MATCH (country2:Country {id: 34}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 4}) MATCH (country2:Country {id: 13}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 23}) MATCH (country2:Country {id: 29}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 1}) MATCH (country2:Country {id: 21}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 18}) MATCH (country2:Country {id: 26}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 0}) MATCH (country2:Country {id: 30}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 23}) MATCH (country2:Country {id: 35}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 13}) MATCH (country2:Country {id: 28}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 17}) MATCH (country2:Country {id: 18}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (country1:Country {id: 11}) MATCH (country2:Country {id: 33}) CREATE (country1)-[:Borders {eu_border: True }]->(country2);
|
||||
MATCH (country1:Country {id: 10}) MATCH (country2:Country {id: 19}) CREATE (country1)-[:Borders {eu_border: False }]->(country2);
|
||||
MATCH (city:City {id: 21}) MATCH (country:Country {id: 35}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 22}) MATCH (country:Country {id: 23}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 3}) MATCH (country:Country {id: 28}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 9}) MATCH (country:Country {id: 25}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 43}) MATCH (country:Country {id: 3}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 10}) MATCH (country:Country {id: 13}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 42}) MATCH (country:Country {id: 2}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 53}) MATCH (country:Country {id: 4}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 37}) MATCH (country:Country {id: 17}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 20}) MATCH (country:Country {id: 34}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 52}) MATCH (country:Country {id: 23}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 55}) MATCH (country:Country {id: 5}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 51}) MATCH (country:Country {id: 18}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 6}) MATCH (country:Country {id: 29}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 44}) MATCH (country:Country {id: 4}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 41}) MATCH (country:Country {id: 12}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 39}) MATCH (country:Country {id: 26}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 24}) MATCH (country:Country {id: 30}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 35}) MATCH (country:Country {id: 5}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 46}) MATCH (country:Country {id: 8}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 47}) MATCH (country:Country {id: 31}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 48}) MATCH (country:Country {id: 20}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 1}) MATCH (country:Country {id: 12}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 31}) MATCH (country:Country {id: 16}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 23}) MATCH (country:Country {id: 24}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 29}) MATCH (country:Country {id: 26}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 27}) MATCH (country:Country {id: 31}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 16}) MATCH (country:Country {id: 11}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 18}) MATCH (country:Country {id: 31}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 32}) MATCH (country:Country {id: 10}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 5}) MATCH (country:Country {id: 11}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 40}) MATCH (country:Country {id: 0}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 15}) MATCH (country:Country {id: 16}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 14}) MATCH (country:Country {id: 27}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 13}) MATCH (country:Country {id: 4}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 12}) MATCH (country:Country {id: 15}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 7}) MATCH (country:Country {id: 1}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 2}) MATCH (country:Country {id: 31}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 30}) MATCH (country:Country {id: 11}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 26}) MATCH (country:Country {id: 19}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 38}) MATCH (country:Country {id: 16}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 50}) MATCH (country:Country {id: 0}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 8}) MATCH (country:Country {id: 1}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 28}) MATCH (country:Country {id: 16}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 34}) MATCH (country:Country {id: 10}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 4}) MATCH (country:Country {id: 22}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 19}) MATCH (country:Country {id: 33}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 17}) MATCH (country:Country {id: 9}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 11}) MATCH (country:Country {id: 6}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 45}) MATCH (country:Country {id: 32}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 25}) MATCH (country:Country {id: 7}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 0}) MATCH (country:Country {id: 21}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 33}) MATCH (country:Country {id: 22}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 36}) MATCH (country:Country {id: 14}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 49}) MATCH (country:Country {id: 16}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city:City {id: 54}) MATCH (country:Country {id: 33}) CREATE (city)-[:Inside]->(country);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 35}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 22}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 9}) MATCH (city2:City {id: 43}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 26}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 39}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 4}) MATCH (city2:City {id: 45}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 13}) MATCH (city2:City {id: 42}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 17}) MATCH (city2:City {id: 45}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 26}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 27}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 44}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 22}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 25}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 38}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 26}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 23}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 19}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 28}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 7}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 21}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 37}) MATCH (city2:City {id: 51}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 37}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 23}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 31}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 8}) MATCH (city2:City {id: 26}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 0}) MATCH (city2:City {id: 16}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 29}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 23}) MATCH (city2:City {id: 27}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 8}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 32}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 24}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 18}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 49}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 9}) MATCH (city2:City {id: 21}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 0}) MATCH (city2:City {id: 7}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 35}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 27}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 46}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 23}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 20}) MATCH (city2:City {id: 43}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 4}) MATCH (city2:City {id: 33}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 33}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 9}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 10}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 35}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 40}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 39}) MATCH (city2:City {id: 46}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 38}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 25}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 7}) MATCH (city2:City {id: 8}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 38}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 34}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 42}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 35}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 21}) MATCH (city2:City {id: 22}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 0}) MATCH (city2:City {id: 8}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 35}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 27}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 52}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 42}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 14}) MATCH (city2:City {id: 25}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 49}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 13}) MATCH (city2:City {id: 44}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 21}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 1}) MATCH (city2:City {id: 41}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 31}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 50}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 7}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 27}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 13}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 13}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 11}) MATCH (city2:City {id: 16}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 8}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 40}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 7}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 43}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 44}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 28}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 19}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 16}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 22}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 0}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 17}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 34}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 35}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 34}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 37}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 12}) MATCH (city2:City {id: 25}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 8}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 13}) MATCH (city2:City {id: 24}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 19}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 44}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 31}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 0}) MATCH (city2:City {id: 5}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 35}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 3}) MATCH (city2:City {id: 13}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 38}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 44}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 27}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 20}) MATCH (city2:City {id: 41}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 40}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 28}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 4}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 27}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 28}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 32}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 51}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 39}) MATCH (city2:City {id: 51}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 25}) MATCH (city2:City {id: 27}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 31}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 7}) MATCH (city2:City {id: 16}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 18}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 21}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 32}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 26}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 32}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 51}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 7}) MATCH (city2:City {id: 26}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 32}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 35}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 30}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 4}) MATCH (city2:City {id: 33}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 12}) MATCH (city2:City {id: 14}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 21}) MATCH (city2:City {id: 29}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 4}) MATCH (city2:City {id: 29}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 1}) MATCH (city2:City {id: 43}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 17}) MATCH (city2:City {id: 29}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 33}) MATCH (city2:City {id: 45}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 50}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 31}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 40}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 10}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 11}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 38}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 35}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 34}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 8}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 1}) MATCH (city2:City {id: 20}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 27}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 11}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 41}) MATCH (city2:City {id: 43}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 22}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 42}) MATCH (city2:City {id: 44}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 17}) MATCH (city2:City {id: 33}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 10}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 8}) MATCH (city2:City {id: 16}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 50}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 30}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 13}) MATCH (city2:City {id: 44}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 34}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 1}) MATCH (city2:City {id: 41}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 24}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 9}) MATCH (city2:City {id: 10}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 7}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 27}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 44}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 16}) MATCH (city2:City {id: 52}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 31}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 40}) MATCH (city2:City {id: 55}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 26}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 33}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 13}) MATCH (city2:City {id: 53}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 2}) MATCH (city2:City {id: 47}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 19}) MATCH (city2:City {id: 54}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 4}) MATCH (city2:City {id: 17}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 28}) MATCH (city2:City {id: 49}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 24}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 37}) MATCH (city2:City {id: 46}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 21}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 5}) MATCH (city2:City {id: 16}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 31}) MATCH (city2:City {id: 32}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 15}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 39}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 18}) MATCH (city2:City {id: 25}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 29}) MATCH (city2:City {id: 51}) CREATE (city1)-[:CloseTo {eu_border: True }]->(city2);
|
||||
MATCH (city1:City {id: 6}) MATCH (city2:City {id: 40}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
||||
MATCH (city1:City {id: 32}) MATCH (city2:City {id: 38}) CREATE (city1)-[:CloseTo {eu_border: False }]->(city2);
|
@ -1,7 +0,0 @@
|
||||
- name: memgraph_V1
|
||||
test_suite: memgraph_V1
|
||||
must_pass: true
|
||||
|
||||
- name: openCypher_M09
|
||||
test_suite: openCypher_M09
|
||||
must_pass: false
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user