Skip to content

Commit 7294731

Browse files
committed
Add test Python script
1 parent e5125c0 commit 7294731

File tree

22 files changed

+91
-0
lines changed

22 files changed

+91
-0
lines changed

cypher/bi.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from neo4j import GraphDatabase, time
2+
from datetime import datetime
3+
from neo4j.time import DateTime
4+
import time
5+
import pytz
6+
import csv
7+
import re
8+
9+
#@unit_of_work(timeout=300)
10+
def query_fun(tx, query_spec, query_parameters):
11+
result = tx.run(query_spec, query_parameters)
12+
return result.value()
13+
14+
def run_query(session, query_id, query_spec, query_parameters):
15+
print(f'Q{query_id}: {query_parameters}')
16+
start = time.time()
17+
result = session.read_transaction(query_fun, query_spec, query_parameters)
18+
print(f'{len(result)} results')
19+
end = time.time()
20+
duration = end - start
21+
#print("Q{}: {:.4f} seconds, {} tuples".format(query_id, duration, result[0]))
22+
return (duration, result)
23+
24+
def convert_to_datetime(timestamp):
25+
dt = datetime.strptime(timestamp, '%Y-%m-%d')
26+
return DateTime(dt.year, dt.month, dt.day, 0, 0, 0, pytz.timezone('GMT'))
27+
28+
driver = GraphDatabase.driver("bolt://localhost:7687")
29+
30+
with driver.session() as session:
31+
for query_id in range(1, 21):
32+
query_file = open(f'queries/bi-{query_id}.cypher', 'r')
33+
query_spec = query_file.read()
34+
35+
parameters_csv = csv.DictReader(open(f'parameters/bi-{query_id}.txt'), delimiter='|')
36+
37+
for query_parameters in parameters_csv:
38+
query_parameters = {k: int(v) if re.match(r'^[0-9]+$', v) else v for k, v in query_parameters.items()}
39+
query_parameters = {
40+
k.replace('[]', ''):
41+
v.split(';') if re.findall('\[\]$', k) else v for k, v in query_parameters.items()
42+
}
43+
#re.findall('\[\]$', 'A')
44+
query_parameters = {k: convert_to_datetime(v) if re.findall('date', k.lower()) else v for k, v in query_parameters.items()}
45+
print(query_parameters)
46+
run_query(session, query_id, query_spec, query_parameters)
47+
48+
driver.close()

cypher/parameters/bi-1.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
datetime
2+
2011-12-01

cypher/parameters/bi-10.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
personId|country|tagClass|minPathDistance|maxPathDistance
2+
5|France|Sports|2|3

cypher/parameters/bi-11.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
country|startDate
2+
France|2010-05-01

cypher/parameters/bi-12.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
date|lengthThreshold|languages[]
2+
2010-07-22|50|en;fr

cypher/parameters/bi-13.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
country|endDate
2+
France|2013-01-01

cypher/parameters/bi-14.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
country1|country2
2+
France|Spain

cypher/parameters/bi-15.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
person1Id|person2Id|startDate|endDate
2+
2|4|2011-06-01|2012-05-31

cypher/parameters/bi-16.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tagA|dateA|tagB|dateB|maxKnowsLimit
2+
Pyrenees|2011-10-10|Snowboard|2012-03-04|5

cypher/parameters/bi-17.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tag|delta
2+
Snowboard|10

0 commit comments

Comments
 (0)