def test_2_edges(self): input_query = 'MATCH ()-[e1]->()-[e2]->()' expected = 'RETURN [] AS nodes, ' \ '[id(e1), id(e2)] AS edges, ' \ '[e1.timestamps, e2.timestamps] AS timestamps' result = self.extract_output(append_return_clause(input_query)) self.assertEqual(result, expected)
def transpile_part(part): if ' '.join(part.split()).strip() in ('UNION', 'UNION ALL'): return part.strip() part = restrict_query_to_sketch(part, sketch_id) part = append_return_clause(part) part = unwind_timestamps(part) return part.strip()
def test_varlength_edge(self): input_queries = ('MATCH ()-[e1]->()-[e2%s]->()' % length for length in ['*', '*..', '*0..', '*..1', '*0..1']) expected = 'RETURN [] AS nodes, ' \ '[id(e1)] AS edges, [e1.timestamps] AS timestamps' for input_query in input_queries: result = self.extract_output(append_return_clause(input_query)) self.assertEqual(result, expected)
def test_local_binders(self): input_query = 'MATCH (a) WHERE size((b)-[c]-(d)) > 0' expected = 'RETURN [id(a)] AS nodes, [] AS edges, [] AS timestamps' result = self.extract_output(append_return_clause(input_query)) self.assertEqual(result, expected)
def test_2_nodes(self): input_query = 'MATCH (a)-->(b)' expected = 'RETURN [id(a), id(b)] AS nodes, ' \ '[] AS edges, [] AS timestamps' result = self.extract_output(append_return_clause(input_query)) self.assertEqual(result, expected)