diff --git a/tests/common/utils.py b/tests/common/utils.py index 645dce14647c24d1f07111c1f79ba9a94e27377c..39c3bbd55f68c9091f3020dba4d9cb0b5bf5d842 100644 --- a/tests/common/utils.py +++ b/tests/common/utils.py @@ -322,14 +322,23 @@ def space_generator(size=6, chars=string.ascii_uppercase + string.digits): def check_resp(resp, stmt): + assert resp is not None, "response is None" msg = f"Fail to exec: {stmt}, error: {resp.error_msg()}" assert resp.is_succeeded(), msg -def create_space(space_desc: SpaceDesc, sess: Session): - def exec(stmt): +def response(sess, stmt): + try: resp = sess.execute(stmt) check_resp(resp, stmt) + return resp + except Exception as ex: + assert not ex, f"Fail to exec: {stmt}, exception: {ex}" + + +def create_space(space_desc: SpaceDesc, sess: Session): + def exec(stmt): + response(sess, stmt) exec(space_desc.drop_stmt()) exec(space_desc.create_stmt()) @@ -339,8 +348,7 @@ def create_space(space_desc: SpaceDesc, sess: Session): def _load_data_from_file(sess, data_dir, fd): for stmt in CSVImporter(fd, data_dir): - rs = sess.execute(stmt) - check_resp(rs, stmt) + response(sess, stmt) def load_csv_data( @@ -376,8 +384,7 @@ def load_csv_data( schemas = config['schema'] stmts = ' '.join(map(lambda x: x.strip(), schemas.splitlines())) - rs = sess.execute(stmts) - check_resp(rs, stmts) + response(sess, stmts) time.sleep(3) diff --git a/tests/tck/conftest.py b/tests/tck/conftest.py index f24001c526c52b4dc6f5bc05cd55c54d4280b5d5..d0d533f8a89779fa81af41f5d476d29e3202032f 100644 --- a/tests/tck/conftest.py +++ b/tests/tck/conftest.py @@ -18,7 +18,13 @@ from tests.common.dataset_printer import DataSetPrinter from tests.common.comparator import DataSetComparator from tests.common.configs import DATA_DIR from tests.common.types import SpaceDesc -from tests.common.utils import create_space, load_csv_data, space_generator +from tests.common.utils import ( + create_space, + load_csv_data, + space_generator, + check_resp, + response, +) from tests.tck.utils.table import dataset, table from tests.tck.utils.nbv import murmurhash2 @@ -48,8 +54,8 @@ def preload_space( graph_spaces["space_desc"] = load_student_data else: raise ValueError(f"Invalid space name given: {space}") - rs = session.execute(f'USE {space};') - assert rs.is_succeeded(), f"Fail to use space `{space}': {rs.error_msg()}" + stmt = f'USE {space};' + response(session, stmt) @given("an empty graph") @@ -60,9 +66,7 @@ def empty_graph(session, graph_spaces): @given(parse("having executed:\n{query}")) def having_executed(query, session): ngql = " ".join(query.splitlines()) - resp = session.execute(ngql) - assert resp.is_succeeded(), \ - f"Fail to execute {ngql}, error: {resp.error_msg()}" + response(session, ngql) @given(parse("create a space with following options:\n{options}")) @@ -94,6 +98,7 @@ def import_csv_data(data, graph_spaces, session, pytestconfig): ) assert space_desc is not None graph_spaces["space_desc"] = space_desc + graph_spaces["drop_space"] = True @when(parse("executing query:\n{query}")) @@ -116,10 +121,12 @@ def cmp_dataset(graph_spaces, included=False) -> None: rs = graph_spaces['result_set'] ngql = graph_spaces['ngql'] - space_desc = graph_spaces['space_desc'] - assert rs.is_succeeded(), f"Response failed: {rs.error_msg()}" - vid_fn = murmurhash2 if space_desc.vid_type == 'int' else None - ds = dataset(table(result)) + check_resp(rs, ngql) + space_desc = graph_spaces.get('space_desc', None) + vid_fn = None + if space_desc is not None: + vid_fn = murmurhash2 if space_desc.vid_type == 'int' else None + ds = dataset(table(result), graph_spaces.get("variables", {})) dscmp = DataSetComparator(strict=strict, order=order, included=included, @@ -147,6 +154,17 @@ def cmp_dataset(graph_spaces, assert res, f"Fail to exec: {ngql}\nResponse: {dsp(rds)}\nExpected: {dsp(ds)}\nNotFoundRow: {rowp(ds, i)}" +@then(parse("define some list variables:\n{text}")) +def define_list_var_alias(text, graph_spaces): + tbl = table(text) + graph_spaces["variables"] = { + column: "[" + + ",".join(filter(lambda x: x, [row.get(column) + for row in tbl['rows']])) + "]" + for column in tbl['column_names'] + } + + @then(parse("the result should be, in order:\n{result}")) def result_should_be_in_order(result, graph_spaces): cmp_dataset(graph_spaces, result, order=True, strict=True) @@ -180,8 +198,8 @@ def no_side_effects(): @then("the execution should be successful") def execution_should_be_succ(graph_spaces): rs = graph_spaces["result_set"] - assert rs is not None, "Please execute a query at first" - assert rs.is_succeeded(), f"Response failed: {rs.error_msg()}" + stmt = graph_spaces["ngql"] + check_resp(rs, stmt) @then(rparse(r"a (?P<err_type>\w+) should be raised at (?P<time>runtime|compile time)(?P<sym>:|.)(?P<msg>.*)")) @@ -205,6 +223,7 @@ def drop_used_space(session, graph_spaces): drop_space = graph_spaces.get("drop_space", False) if not drop_space: return - space_desc = graph_spaces["space_desc"] - resp = session.execute(space_desc.drop_stmt()) - assert resp.is_succeeded(), f"Fail to drop space {space_desc.name}" + space_desc = graph_spaces.get("space_desc", None) + if space_desc is not None: + stmt = space_desc.drop_stmt() + response(session, stmt) diff --git a/tests/tck/features/subgraph/subgraph.IntVid.feature b/tests/tck/features/subgraph/subgraph.IntVid.feature index 92b993cb1a2fd8f690662c36dbade79194582cd2..f670b847d14a3586b9ac68a9c36a648e8c68d15c 100644 --- a/tests/tck/features/subgraph/subgraph.IntVid.feature +++ b/tests/tck/features/subgraph/subgraph.IntVid.feature @@ -101,344 +101,344 @@ Feature: Integer Vid subgraph """ GET SUBGRAPH FROM hash('Tim Duncan') """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Aron Baynes"->"Spurs"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Boris Diaw"->"Tony Parker"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Boris Diaw"->"Spurs"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tony Parker"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tony Parker"->"Spurs"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Dejounte Murray"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Marco Belinelli"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tiago Splitter"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | - | | | | [:like "Dejounte Murray"->"Danny Green"@0] | - | | | | [:like "Marco Belinelli"->"Danny Green"@0] | - | | | | [:like "Danny Green"->"Marco Belinelli"@0] | - | | | | [:serve "Danny Green"->"Spurs"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Manu Ginobili"->"Spurs"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Aron Baynes"->"Spurs"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Boris Diaw"->"Tony Parker"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Boris Diaw"->"Spurs"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tony Parker"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tony Parker"->"Spurs"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Dejounte Murray"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Marco Belinelli"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tiago Splitter"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + | | | [:like "Dejounte Murray"->"Danny Green"@0] | + | | | [:like "Marco Belinelli"->"Danny Green"@0] | + | | | [:like "Danny Green"->"Marco Belinelli"@0] | + | | | [:serve "Danny Green"->"Spurs"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | Scenario: Integer Vid two steps When executing query: """ GET SUBGRAPH 2 STEPS FROM hash('Tim Duncan') """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Cavaliers") | [:serve "LeBron James"->"Cavaliers"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Pistons") | [:serve "LeBron James"->"Cavaliers"@1] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"LeBron James"@0] | ("Damian Lillard") | [:serve "Damian Lillard"->"Trail Blazers"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Danny Green"->"Marco Belinelli"@0] | ("Kings") | [:serve "Rudy Gay"->"Kings"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Raptors") | [:serve "Cory Joseph"->"Raptors"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:serve "Danny Green"->"Raptors"@0] | ("Jazz") | [:serve "Rudy Gay"->"Raptors"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Danny Green"->"Spurs"@0] | ("LeBron James") | [:serve "Tracy McGrady"->"Raptors"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | ("Paul Gasol") | [:like "Chris Paul"->"LeBron James"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Kyle Anderson") | [:serve "LeBron James"->"Heat"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:serve "LeBron James"->"Lakers"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Kevin Durant") | [:serve "Paul Gasol"->"Bulls"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Manu Ginobili"->"Spurs"@0] | ("Yao Ming") | [:serve "Paul Gasol"->"Lakers"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | ("James Harden") | [:like "Tracy McGrady"->"Rudy Gay"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Aron Baynes"->"Celtics"@0] | ("Hornets") | [:serve "Kevin Durant"->"Warriors"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:serve "Aron Baynes"->"Pistons"@0] | ("David West") | [:like "Yao Ming"->"Tracy McGrady"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Aron Baynes"->"Spurs"@0] | ("Chris Paul") | [:like "Russell Westbrook"->"James Harden"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Celtics") | [:like "James Harden"->"Russell Westbrook"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Hawks"@0] | ("Jonathon Simmons") | [:serve "Chris Paul"->"Hornets"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Boris Diaw"->"Hornets"@0] | ("Hawks") | [:serve "David West"->"Hornets"@0] | - | | | | [:serve "Boris Diaw"->"Jazz"@0] | ("Heat") | [:serve "David West"->"Warriors"@0] | - | | | | [:serve "Boris Diaw"->"Spurs"@0] | ("Lakers") | [:serve "Jonathon Simmons"->"76ers"@0] | - | | | | [:serve "Boris Diaw"->"Suns"@0] | ("Suns") | [:serve "Jonathon Simmons"->"Magic"@0] | - | | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Magic") | [:serve "JaVale McGee"->"Lakers"@0] | - | | | | [:like "Shaquile O\'Neal"->"JaVale McGee"@0] | ("Trail Blazers") | [:serve "Tracy McGrady"->"Magic"@0] | - | | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | ("76ers") | [:serve "JaVale McGee"->"Warriors"@0] | - | | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | ("JaVale McGee") | | - | | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | ("Cory Joseph") | | - | | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | ("Tracy McGrady") | | - | | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | ("Russell Westbrook") | | - | | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | ("Bulls") | | - | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Warriors") | | - | | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | - | | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | - | | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "Tony Parker"->"Hornets"@0] | | | - | | | | [:serve "Tony Parker"->"Spurs"@0] | | | - | | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | | | - | | | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "Cory Joseph"->"Spurs"@0] | | | - | | | | [:serve "David West"->"Spurs"@0] | | | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | - | | | | [:serve "Jonathon Simmons"->"Spurs"@0] | | | - | | | | [:serve "Kyle Anderson"->"Spurs"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | - | | | | [:serve "Paul Gasol"->"Spurs"@0] | | | - | | | | [:serve "Rudy Gay"->"Spurs"@0] | | | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | - | | | | [:serve "Tracy McGrady"->"Spurs"@0] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | - | | | | [:like "Dejounte Murray"->"Chris Paul"@0] | | | - | | | | [:like "Dejounte Murray"->"James Harden"@0] | | | - | | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | | | - | | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | | | - | | | | [:like "Dejounte Murray"->"LeBron James"@0] | | | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | - | | | | [:like "Dejounte Murray"->"Russell Westbrook"@0] | | | - | | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | - | | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | - | | | | [:serve "Marco Belinelli"->"76ers"@0] | | | - | | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | - | | | | [:serve "Marco Belinelli"->"Kings"@0] | | | - | | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | - | | | | [:serve "Tiago Splitter"->"76ers"@0] | | | - | | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | + Then define some list variables: + | edge1 | vertex2 | edge2 | vertex3 | edge3 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Cavaliers") | [:serve "LeBron James"->"Cavaliers"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Pistons") | [:serve "LeBron James"->"Cavaliers"@1] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"LeBron James"@0] | ("Damian Lillard") | [:serve "Damian Lillard"->"Trail Blazers"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Danny Green"->"Marco Belinelli"@0] | ("Kings") | [:serve "Rudy Gay"->"Kings"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Raptors") | [:serve "Cory Joseph"->"Raptors"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:serve "Danny Green"->"Raptors"@0] | ("Jazz") | [:serve "Rudy Gay"->"Raptors"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Danny Green"->"Spurs"@0] | ("LeBron James") | [:serve "Tracy McGrady"->"Raptors"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | ("Paul Gasol") | [:like "Chris Paul"->"LeBron James"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Kyle Anderson") | [:serve "LeBron James"->"Heat"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:serve "LeBron James"->"Lakers"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Kevin Durant") | [:serve "Paul Gasol"->"Bulls"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Manu Ginobili"->"Spurs"@0] | ("Yao Ming") | [:serve "Paul Gasol"->"Lakers"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | ("James Harden") | [:like "Tracy McGrady"->"Rudy Gay"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Aron Baynes"->"Celtics"@0] | ("Hornets") | [:serve "Kevin Durant"->"Warriors"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:serve "Aron Baynes"->"Pistons"@0] | ("David West") | [:like "Yao Ming"->"Tracy McGrady"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Aron Baynes"->"Spurs"@0] | ("Chris Paul") | [:like "Russell Westbrook"->"James Harden"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Celtics") | [:like "James Harden"->"Russell Westbrook"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Hawks"@0] | ("Jonathon Simmons") | [:serve "Chris Paul"->"Hornets"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Boris Diaw"->"Hornets"@0] | ("Hawks") | [:serve "David West"->"Hornets"@0] | + | | | [:serve "Boris Diaw"->"Jazz"@0] | ("Heat") | [:serve "David West"->"Warriors"@0] | + | | | [:serve "Boris Diaw"->"Spurs"@0] | ("Lakers") | [:serve "Jonathon Simmons"->"76ers"@0] | + | | | [:serve "Boris Diaw"->"Suns"@0] | ("Suns") | [:serve "Jonathon Simmons"->"Magic"@0] | + | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Magic") | [:serve "JaVale McGee"->"Lakers"@0] | + | | | [:like "Shaquile O\'Neal"->"JaVale McGee"@0] | ("Trail Blazers") | [:serve "Tracy McGrady"->"Magic"@0] | + | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | ("76ers") | [:serve "JaVale McGee"->"Warriors"@0] | + | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | ("JaVale McGee") | | + | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | ("Cory Joseph") | | + | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | ("Tracy McGrady") | | + | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | ("Russell Westbrook") | | + | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | ("Bulls") | | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Warriors") | | + | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | + | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | + | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "Tony Parker"->"Hornets"@0] | | | + | | | [:serve "Tony Parker"->"Spurs"@0] | | | + | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | | | + | | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "Cory Joseph"->"Spurs"@0] | | | + | | | [:serve "David West"->"Spurs"@0] | | | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | + | | | [:serve "Jonathon Simmons"->"Spurs"@0] | | | + | | | [:serve "Kyle Anderson"->"Spurs"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | + | | | [:serve "Paul Gasol"->"Spurs"@0] | | | + | | | [:serve "Rudy Gay"->"Spurs"@0] | | | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | + | | | [:serve "Tracy McGrady"->"Spurs"@0] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | + | | | [:like "Dejounte Murray"->"Chris Paul"@0] | | | + | | | [:like "Dejounte Murray"->"James Harden"@0] | | | + | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | | | + | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | | | + | | | [:like "Dejounte Murray"->"LeBron James"@0] | | | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | + | | | [:like "Dejounte Murray"->"Russell Westbrook"@0] | | | + | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | + | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | + | | | [:serve "Marco Belinelli"->"76ers"@0] | | | + | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | + | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | + | | | [:serve "Marco Belinelli"->"Kings"@0] | | | + | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | + | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | + | | | [:serve "Tiago Splitter"->"76ers"@0] | | | + | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | + | <[vertex3]> | <[edge3]> | Scenario: Integer Vid in edge When executing query: """ GET SUBGRAPH 2 STEPS FROM hash('Tim Duncan') IN like, serve """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Dejounte Murray") | [:teammate "Tim Duncan"->"Danny Green"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Danny Green") | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Tiago Splitter") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | | [:like "Danny Green"->"Marco Belinelli"@0] | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | - | | | | [:like "Dejounte Murray"->"Danny Green"@0] | | | - | | | | [:like "Marco Belinelli"->"Danny Green"@0] | | | - | | | | [:like "Boris Diaw"->"Tony Parker"@0] | | | - | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | | | - | | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | - | | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | - | | | | [:like "Tim Duncan"->"Tony Parker"@0] | | | + Then define some list variables: + | edge1 | vertex2 | edge2 | vertex3 | edge3 | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Dejounte Murray") | [:teammate "Tim Duncan"->"Danny Green"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Danny Green") | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Tiago Splitter") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | | [:like "Danny Green"->"Marco Belinelli"@0] | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | + | | | [:like "Dejounte Murray"->"Danny Green"@0] | | | + | | | [:like "Marco Belinelli"->"Danny Green"@0] | | | + | | | [:like "Boris Diaw"->"Tony Parker"@0] | | | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | | | + | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | + | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | + | | | [:like "Tim Duncan"->"Tony Parker"@0] | | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | + | <[vertex3]> | <[edge3]> | Scenario: Integer Vid in and out edge When executing query: """ GET SUBGRAPH 2 STEPS FROM hash('Tim Duncan') IN like OUT serve """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:serve "Tim Duncan"->"Spurs"@0] | ("Manu Ginobili") | [:serve "Manu Ginobili"->"Spurs"@0] | ("Raptors") | [:serve "Rudy Gay"->"Raptors"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Jazz") | [:serve "Damian Lillard"->"Trail Blazers"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Cavaliers") | [:serve "Rudy Gay"->"Kings"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Pistons") | [:serve "Rudy Gay"->"Spurs"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Kings") | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:serve "Danny Green"->"Raptors"@0] | ("Hornets") | [:teammate "Tim Duncan"->"Danny Green"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Danny Green"->"Spurs"@0] | ("Spurs") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Rudy Gay") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Tony Parker"->"Hornets"@0] | ("Hawks") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | | | [:serve "Tony Parker"->"Spurs"@0] | ("Heat") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Lakers") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Celtics") | | - | | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Suns") | | - | | | | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Magic") | | - | | | | [:like "Tim Duncan"->"Tony Parker"@0] | ("Trail Blazers") | | - | | | | [:serve "Aron Baynes"->"Celtics"@0] | ("76ers") | | - | | | | [:serve "Aron Baynes"->"Pistons"@0] | ("Bulls") | | - | | | | [:serve "Aron Baynes"->"Spurs"@0] | ("Warriors") | | - | | | | [:serve "Boris Diaw"->"Hawks"@0] | | | - | | | | [:serve "Boris Diaw"->"Hornets"@0] | | | - | | | | [:serve "Boris Diaw"->"Jazz"@0] | | | - | | | | [:serve "Boris Diaw"->"Spurs"@0] | | | - | | | | [:serve "Boris Diaw"->"Suns"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | | | - | | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | | | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | - | | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | - | | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | - | | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "Marco Belinelli"->"76ers"@0] | | | - | | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | - | | | | [:serve "Marco Belinelli"->"Kings"@0] | | | - | | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | - | | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | - | | | | [:like "Danny Green"->"Marco Belinelli"@0] | | | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | - | | | | [:serve "Tiago Splitter"->"76ers"@0] | | | - | | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | + Then define some list variables: + | edge1 | vertex2 | edge2 | vertex3 | edge3 | + | [:serve "Tim Duncan"->"Spurs"@0] | ("Manu Ginobili") | [:serve "Manu Ginobili"->"Spurs"@0] | ("Raptors") | [:serve "Rudy Gay"->"Raptors"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Jazz") | [:serve "Damian Lillard"->"Trail Blazers"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Cavaliers") | [:serve "Rudy Gay"->"Kings"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Pistons") | [:serve "Rudy Gay"->"Spurs"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Kings") | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:serve "Danny Green"->"Raptors"@0] | ("Hornets") | [:teammate "Tim Duncan"->"Danny Green"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Danny Green"->"Spurs"@0] | ("Spurs") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Rudy Gay") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Tony Parker"->"Hornets"@0] | ("Hawks") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | | | [:serve "Tony Parker"->"Spurs"@0] | ("Heat") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Lakers") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Celtics") | | + | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Suns") | | + | | | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Magic") | | + | | | [:like "Tim Duncan"->"Tony Parker"@0] | ("Trail Blazers") | | + | | | [:serve "Aron Baynes"->"Celtics"@0] | ("76ers") | | + | | | [:serve "Aron Baynes"->"Pistons"@0] | ("Bulls") | | + | | | [:serve "Aron Baynes"->"Spurs"@0] | ("Warriors") | | + | | | [:serve "Boris Diaw"->"Hawks"@0] | | | + | | | [:serve "Boris Diaw"->"Hornets"@0] | | | + | | | [:serve "Boris Diaw"->"Jazz"@0] | | | + | | | [:serve "Boris Diaw"->"Spurs"@0] | | | + | | | [:serve "Boris Diaw"->"Suns"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | | | + | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | | | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | + | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | + | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | + | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "Marco Belinelli"->"76ers"@0] | | | + | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | + | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | + | | | [:serve "Marco Belinelli"->"Kings"@0] | | | + | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | + | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | + | | | [:like "Danny Green"->"Marco Belinelli"@0] | | | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | + | | | [:serve "Tiago Splitter"->"76ers"@0] | | | + | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | + | <[vertex3]> | <[edge3]> | Scenario: Integer Vid two steps in and out edge When executing query: """ GET SUBGRAPH 2 STEPS FROM hash('Tim Duncan'), hash('James Harden') IN teammate OUT serve """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:serve "Tim Duncan"->"Spurs"@0] | ("Manu Ginobili") | [:serve "Manu Ginobili"->"Spurs"@0] | ("Hornets") | [:like "Manu Ginobili"->"Tim Duncan"@0] | - | ("James Harden") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Tony Parker") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | ("Spurs") | [:like "Tony Parker"->"Tim Duncan"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | | [:like "Tim Duncan"->"Manu Ginobili"@0] | - | | [:serve "James Harden"->"Rockets"@0] | | [:serve "Tony Parker"->"Hornets"@0] | | [:like "Tim Duncan"->"Tony Parker"@0] | - | | [:serve "James Harden"->"Thunders"@0] | | [:serve "Tony Parker"->"Spurs"@0] | | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | | | - | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | | + Then define some list variables: + | edge1 | edge2 | edge3 | + | [:serve "Tim Duncan"->"Spurs"@0] | [:serve "Manu Ginobili"->"Spurs"@0] | [:like "Manu Ginobili"->"Tim Duncan"@0] | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | [:like "Tony Parker"->"Tim Duncan"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | [:teammate "Tony Parker"->"Manu Ginobili"@0] | [:like "Tim Duncan"->"Manu Ginobili"@0] | + | [:serve "James Harden"->"Rockets"@0] | [:serve "Tony Parker"->"Hornets"@0] | [:like "Tim Duncan"->"Tony Parker"@0] | + | [:serve "James Harden"->"Thunders"@0] | [:serve "Tony Parker"->"Spurs"@0] | [:like "Tony Parker"->"Manu Ginobili"@0] | + | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | | + | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan"), ("James Harden")] | <[edge1]> | + | [("Manu Ginobili"), ("Tony Parker")] | <[edge2]> | + | [("Hornets"), ("Spurs")] | <[edge3]> | Scenario: Integer Vid three steps When executing query: """ GET SUBGRAPH 3 STEPS FROM hash('Paul George') OUT serve BOTH like """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | vertex4 | edge4 | - | ("Paul George") | [:like "Russell Westbrook"->"Paul George"@0] | ("Russell Westbrook") | [:like "Dejounte Murray"->"Russell Westbrook"@0] | ("Dejounte Murray") | [:serve "Dejounte Murray"->"Spurs"@0] | ("LeBron James") | [:like "Chris Paul"->"LeBron James"@0] | - | | [:serve "Paul George"->"Pacers"@0] | | [:like "James Harden"->"Russell Westbrook"@0] | ("James Harden") | [:like "Dejounte Murray"->"Chris Paul"@0] | ("Marco Belinelli") | [:like "Danny Green"->"LeBron James"@0] | - | | [:serve "Paul George"->"Thunders"@0] | | [:serve "Russell Westbrook"->"Thunders"@0] | | [:like "Dejounte Murray"->"Danny Green"@0] | ("Danny Green") | [:like "Danny Green"->"Marco Belinelli"@0] | - | | [:like "Paul George"->"Russell Westbrook"@0] | | [:like "Russell Westbrook"->"James Harden"@0] | | [:like "Dejounte Murray"->"James Harden"@0] | ("Rockets") | [:like "Marco Belinelli"->"Danny Green"@0] | - | | | | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | ("Spurs") | [:like "Marco Belinelli"->"Tim Duncan"@0] | - | | | | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | ("Kevin Durant") | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | | | | | [:like "Dejounte Murray"->"LeBron James"@0] | ("Kyle Anderson") | [:serve "Marco Belinelli"->"Spurs"@0] | - | | | | | | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Tim Duncan") | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | ("Tony Parker") | [:teammate "Tim Duncan"->"Danny Green"@0] | - | | | | | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Chris Paul") | [:like "Danny Green"->"Tim Duncan"@0] | - | | | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Luka Doncic") | [:serve "Danny Green"->"Spurs"@0] | - | | | | | | [:like "Luka Doncic"->"James Harden"@0] | ("Manu Ginobili") | [:serve "Chris Paul"->"Rockets"@0] | - | | | | | | [:serve "James Harden"->"Rockets"@0] | ("Pacers") | [:serve "Kyle Anderson"->"Spurs"@0] | - | | | | | | [:serve "James Harden"->"Thunders"@0] | ("Thunders") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | | | | | | | [:serve "Tim Duncan"->"Spurs"@0] | - | | | | | | | | [:serve "Tony Parker"->"Spurs"@0] | - | | | | | | | | [:serve "Kevin Durant"->"Thunders"@0] | - | | | | | | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | - | | | | | | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | | | | | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | | | | | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | - | | | | | | | | [:like "Tony Parker"->"Tim Duncan"@0] | - | | | | | | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | - | | | | | | | | [:like "Tim Duncan"->"Tony Parker"@0] | - | | | | | | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | | | | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | | | | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | | | | | | | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | | | | | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + Then define some list variables: + | edge1 | edge2 | edge3 | vertex4 | edge4 | + | [:like "Russell Westbrook"->"Paul George"@0] | [:like "Dejounte Murray"->"Russell Westbrook"@0] | [:serve "Dejounte Murray"->"Spurs"@0] | ("LeBron James") | [:like "Chris Paul"->"LeBron James"@0] | + | [:serve "Paul George"->"Pacers"@0] | [:like "James Harden"->"Russell Westbrook"@0] | [:like "Dejounte Murray"->"Chris Paul"@0] | ("Marco Belinelli") | [:like "Danny Green"->"LeBron James"@0] | + | [:serve "Paul George"->"Thunders"@0] | [:serve "Russell Westbrook"->"Thunders"@0] | [:like "Dejounte Murray"->"Danny Green"@0] | ("Danny Green") | [:like "Danny Green"->"Marco Belinelli"@0] | + | [:like "Paul George"->"Russell Westbrook"@0] | [:like "Russell Westbrook"->"James Harden"@0] | [:like "Dejounte Murray"->"James Harden"@0] | ("Rockets") | [:like "Marco Belinelli"->"Danny Green"@0] | + | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | ("Spurs") | [:like "Marco Belinelli"->"Tim Duncan"@0] | + | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | ("Kevin Durant") | [:like "Marco Belinelli"->"Tony Parker"@0] | + | | | [:like "Dejounte Murray"->"LeBron James"@0] | ("Kyle Anderson") | [:serve "Marco Belinelli"->"Spurs"@0] | + | | | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Tim Duncan") | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | ("Tony Parker") | [:teammate "Tim Duncan"->"Danny Green"@0] | + | | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Chris Paul") | [:like "Danny Green"->"Tim Duncan"@0] | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Luka Doncic") | [:serve "Danny Green"->"Spurs"@0] | + | | | [:like "Luka Doncic"->"James Harden"@0] | ("Manu Ginobili") | [:serve "Chris Paul"->"Rockets"@0] | + | | | [:serve "James Harden"->"Rockets"@0] | ("Pacers") | [:serve "Kyle Anderson"->"Spurs"@0] | + | | | [:serve "James Harden"->"Thunders"@0] | ("Thunders") | [:serve "Manu Ginobili"->"Spurs"@0] | + | | | | | [:serve "Tim Duncan"->"Spurs"@0] | + | | | | | [:serve "Tony Parker"->"Spurs"@0] | + | | | | | [:serve "Kevin Durant"->"Thunders"@0] | + | | | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | + | | | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | | | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | | | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | + | | | | | [:like "Tony Parker"->"Tim Duncan"@0] | + | | | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | + | | | | | [:like "Tim Duncan"->"Tony Parker"@0] | + | | | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | | | | | [:like "Tony Parker"->"Manu Ginobili"@0] | + | | | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | - | vertex4 | edge4 | + | _vertices | _edges | + | [("Paul George")] | <[edge1]> | + | [("Russell Westbrook")] | <[edge2]> | + | [("Dejounte Murray"), ("James Harden")] | <[edge3]> | + | <[vertex4]> | <[edge4]> | Scenario: Integer Vid bidirect edge When executing query: """ GET SUBGRAPH FROM hash('Tony Parker') BOTH like """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tony Parker") | [:like "Boris Diaw"->"Tony Parker"@0] | ("Dejounte Murray") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Marco Belinelli"@0] | - | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tim Duncan"@0] | - | | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | ("Tim Duncan") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | ("Manu Ginobili") | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | - | | [:like "Tony Parker"->"Manu Ginobili"@0] | | [:like "Marco Belinelli"->"Tim Duncan"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tim Duncan"@0] | - | | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | - | | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | - | | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:like "Boris Diaw"->"Tony Parker"@0] | ("Dejounte Murray") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "Dejounte Murray"->"Tony Parker"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tim Duncan"@0] | + | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | ("Tim Duncan") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | ("Manu Ginobili") | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | + | [:like "Tony Parker"->"Manu Ginobili"@0] | | [:like "Marco Belinelli"->"Tim Duncan"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tim Duncan"@0] | + | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | + | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | + | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tony Parker")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | Scenario: Integer Vid pipe When executing query: """ GO FROM hash('Tim Duncan') over serve YIELD serve._src AS id | GET SUBGRAPH FROM $-.id """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | Scenario: Integer Vid var When executing query: @@ -446,34 +446,34 @@ Feature: Integer Vid subgraph $a = GO FROM hash('Tim Duncan') over serve YIELD serve._src AS id; GET SUBGRAPH FROM $a.id """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | diff --git a/tests/tck/features/subgraph/subgraph.feature b/tests/tck/features/subgraph/subgraph.feature index c2ec5ad51846cb83417b8a33fb21718413a66fe3..37b6d50803c0c3cc5ae9685bab16daa81f6f1b9e 100644 --- a/tests/tck/features/subgraph/subgraph.feature +++ b/tests/tck/features/subgraph/subgraph.feature @@ -2,10 +2,9 @@ # # This source code is licensed under Apache 2.0 License, # attached with Common Clause Condition 1.0, found in the LICENSES directory. -@skip Feature: subgraph - Background: Prepare space + Background: Given a graph with space named "nba" Scenario: invalid input @@ -101,344 +100,344 @@ Feature: subgraph """ GET SUBGRAPH FROM 'Tim Duncan' """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Aron Baynes"->"Spurs"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Boris Diaw"->"Tony Parker"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Boris Diaw"->"Spurs"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tony Parker"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tony Parker"->"Spurs"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Dejounte Murray"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Marco Belinelli"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tiago Splitter"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | - | | | | [:like "Dejounte Murray"->"Danny Green"@0] | - | | | | [:like "Marco Belinelli"->"Danny Green"@0] | - | | | | [:like "Danny Green"->"Marco Belinelli"@0] | - | | | | [:serve "Danny Green"->"Spurs"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Manu Ginobili"->"Spurs"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Aron Baynes"->"Spurs"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Boris Diaw"->"Tony Parker"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Boris Diaw"->"Spurs"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tony Parker"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tony Parker"->"Spurs"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Dejounte Murray"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Marco Belinelli"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Tiago Splitter"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + | | | [:like "Dejounte Murray"->"Danny Green"@0] | + | | | [:like "Marco Belinelli"->"Danny Green"@0] | + | | | [:like "Danny Green"->"Marco Belinelli"@0] | + | | | [:serve "Danny Green"->"Spurs"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | Scenario: two steps When executing query: """ GET SUBGRAPH 2 STEPS FROM 'Tim Duncan' """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Cavaliers") | [:serve "LeBron James"->"Cavaliers"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Pistons") | [:serve "LeBron James"->"Cavaliers"@1] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"LeBron James"@0] | ("Damian Lillard") | [:serve "Damian Lillard"->"Trail Blazers"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Danny Green"->"Marco Belinelli"@0] | ("Kings") | [:serve "Rudy Gay"->"Kings"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Raptors") | [:serve "Cory Joseph"->"Raptors"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:serve "Danny Green"->"Raptors"@0] | ("Jazz") | [:serve "Rudy Gay"->"Raptors"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Danny Green"->"Spurs"@0] | ("LeBron James") | [:serve "Tracy McGrady"->"Raptors"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | ("Paul Gasol") | [:like "Chris Paul"->"LeBron James"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Kyle Anderson") | [:serve "LeBron James"->"Heat"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:serve "LeBron James"->"Lakers"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Kevin Durant") | [:serve "Paul Gasol"->"Bulls"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Manu Ginobili"->"Spurs"@0] | ("Yao Ming") | [:serve "Paul Gasol"->"Lakers"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | ("James Harden") | [:like "Tracy McGrady"->"Rudy Gay"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Aron Baynes"->"Celtics"@0] | ("Hornets") | [:serve "Kevin Durant"->"Warriors"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:serve "Aron Baynes"->"Pistons"@0] | ("David West") | [:like "Yao Ming"->"Tracy McGrady"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Aron Baynes"->"Spurs"@0] | ("Chris Paul") | [:like "Russell Westbrook"->"James Harden"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Celtics") | [:like "James Harden"->"Russell Westbrook"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Hawks"@0] | ("Jonathon Simmons") | [:serve "Chris Paul"->"Hornets"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Boris Diaw"->"Hornets"@0] | ("Hawks") | [:serve "David West"->"Hornets"@0] | - | | | | [:serve "Boris Diaw"->"Jazz"@0] | ("Heat") | [:serve "David West"->"Warriors"@0] | - | | | | [:serve "Boris Diaw"->"Spurs"@0] | ("Lakers") | [:serve "Jonathon Simmons"->"76ers"@0] | - | | | | [:serve "Boris Diaw"->"Suns"@0] | ("Suns") | [:serve "Jonathon Simmons"->"Magic"@0] | - | | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Magic") | [:serve "JaVale McGee"->"Lakers"@0] | - | | | | [:like "Shaquile O\'Neal"->"JaVale McGee"@0] | ("Trail Blazers") | [:serve "Tracy McGrady"->"Magic"@0] | - | | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | ("76ers") | [:serve "JaVale McGee"->"Warriors"@0] | - | | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | ("JaVale McGee") | | - | | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | ("Cory Joseph") | | - | | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | ("Tracy McGrady") | | - | | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | ("Russell Westbrook") | | - | | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | ("Bulls") | | - | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Warriors") | | - | | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | - | | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | - | | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "Tony Parker"->"Hornets"@0] | | | - | | | | [:serve "Tony Parker"->"Spurs"@0] | | | - | | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | | | - | | | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "Cory Joseph"->"Spurs"@0] | | | - | | | | [:serve "David West"->"Spurs"@0] | | | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | - | | | | [:serve "Jonathon Simmons"->"Spurs"@0] | | | - | | | | [:serve "Kyle Anderson"->"Spurs"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | - | | | | [:serve "Paul Gasol"->"Spurs"@0] | | | - | | | | [:serve "Rudy Gay"->"Spurs"@0] | | | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | - | | | | [:serve "Tracy McGrady"->"Spurs"@0] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | - | | | | [:like "Dejounte Murray"->"Chris Paul"@0] | | | - | | | | [:like "Dejounte Murray"->"James Harden"@0] | | | - | | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | | | - | | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | | | - | | | | [:like "Dejounte Murray"->"LeBron James"@0] | | | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | - | | | | [:like "Dejounte Murray"->"Russell Westbrook"@0] | | | - | | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | - | | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | - | | | | [:serve "Marco Belinelli"->"76ers"@0] | | | - | | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | - | | | | [:serve "Marco Belinelli"->"Kings"@0] | | | - | | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | - | | | | [:serve "Tiago Splitter"->"76ers"@0] | | | - | | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | + Then define some list variables: + | edge1 | vertex2 | edge2 | vertex3 | edge3 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Cavaliers") | [:serve "LeBron James"->"Cavaliers"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Pistons") | [:serve "LeBron James"->"Cavaliers"@1] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"LeBron James"@0] | ("Damian Lillard") | [:serve "Damian Lillard"->"Trail Blazers"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Danny Green"->"Marco Belinelli"@0] | ("Kings") | [:serve "Rudy Gay"->"Kings"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Raptors") | [:serve "Cory Joseph"->"Raptors"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:serve "Danny Green"->"Raptors"@0] | ("Jazz") | [:serve "Rudy Gay"->"Raptors"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:serve "Danny Green"->"Spurs"@0] | ("LeBron James") | [:serve "Tracy McGrady"->"Raptors"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | ("Paul Gasol") | [:like "Chris Paul"->"LeBron James"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Kyle Anderson") | [:serve "LeBron James"->"Heat"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:serve "LeBron James"->"Lakers"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Kevin Durant") | [:serve "Paul Gasol"->"Bulls"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Manu Ginobili"->"Spurs"@0] | ("Yao Ming") | [:serve "Paul Gasol"->"Lakers"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | ("James Harden") | [:like "Tracy McGrady"->"Rudy Gay"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:serve "Aron Baynes"->"Celtics"@0] | ("Hornets") | [:serve "Kevin Durant"->"Warriors"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:serve "Aron Baynes"->"Pistons"@0] | ("David West") | [:like "Yao Ming"->"Tracy McGrady"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:serve "Aron Baynes"->"Spurs"@0] | ("Chris Paul") | [:like "Russell Westbrook"->"James Harden"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Celtics") | [:like "James Harden"->"Russell Westbrook"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Hawks"@0] | ("Jonathon Simmons") | [:serve "Chris Paul"->"Hornets"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:serve "Boris Diaw"->"Hornets"@0] | ("Hawks") | [:serve "David West"->"Hornets"@0] | + | | | [:serve "Boris Diaw"->"Jazz"@0] | ("Heat") | [:serve "David West"->"Warriors"@0] | + | | | [:serve "Boris Diaw"->"Spurs"@0] | ("Lakers") | [:serve "Jonathon Simmons"->"76ers"@0] | + | | | [:serve "Boris Diaw"->"Suns"@0] | ("Suns") | [:serve "Jonathon Simmons"->"Magic"@0] | + | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Magic") | [:serve "JaVale McGee"->"Lakers"@0] | + | | | [:like "Shaquile O\'Neal"->"JaVale McGee"@0] | ("Trail Blazers") | [:serve "Tracy McGrady"->"Magic"@0] | + | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | ("76ers") | [:serve "JaVale McGee"->"Warriors"@0] | + | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | ("JaVale McGee") | | + | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | ("Cory Joseph") | | + | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | ("Tracy McGrady") | | + | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | ("Russell Westbrook") | | + | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | ("Bulls") | | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Warriors") | | + | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | + | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | + | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "Tony Parker"->"Hornets"@0] | | | + | | | [:serve "Tony Parker"->"Spurs"@0] | | | + | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | | | + | | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "Cory Joseph"->"Spurs"@0] | | | + | | | [:serve "David West"->"Spurs"@0] | | | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | + | | | [:serve "Jonathon Simmons"->"Spurs"@0] | | | + | | | [:serve "Kyle Anderson"->"Spurs"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | + | | | [:serve "Paul Gasol"->"Spurs"@0] | | | + | | | [:serve "Rudy Gay"->"Spurs"@0] | | | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | + | | | [:serve "Tracy McGrady"->"Spurs"@0] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | + | | | [:like "Dejounte Murray"->"Chris Paul"@0] | | | + | | | [:like "Dejounte Murray"->"James Harden"@0] | | | + | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | | | + | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | | | + | | | [:like "Dejounte Murray"->"LeBron James"@0] | | | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | + | | | [:like "Dejounte Murray"->"Russell Westbrook"@0] | | | + | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | + | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | + | | | [:serve "Marco Belinelli"->"76ers"@0] | | | + | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | + | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | + | | | [:serve "Marco Belinelli"->"Kings"@0] | | | + | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | + | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | + | | | [:serve "Tiago Splitter"->"76ers"@0] | | | + | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | + | <[vertex3]> | <[edge3]> | Scenario: in edge When executing query: """ GET SUBGRAPH 2 STEPS FROM 'Tim Duncan' IN like, serve """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Dejounte Murray") | [:teammate "Tim Duncan"->"Danny Green"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Danny Green") | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Tiago Splitter") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | | [:like "Danny Green"->"Marco Belinelli"@0] | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | - | | | | [:like "Dejounte Murray"->"Danny Green"@0] | | | - | | | | [:like "Marco Belinelli"->"Danny Green"@0] | | | - | | | | [:like "Boris Diaw"->"Tony Parker"@0] | | | - | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | | | - | | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | - | | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | - | | | | [:like "Tim Duncan"->"Tony Parker"@0] | | | + Then define some list variables: + | edge1 | vertex2 | edge2 | vertex3 | edge3 | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Rudy Gay") | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Dejounte Murray") | [:teammate "Tim Duncan"->"Danny Green"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Danny Green") | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | ("Tiago Splitter") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | | [:like "Danny Green"->"Marco Belinelli"@0] | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | + | | | [:like "Dejounte Murray"->"Danny Green"@0] | | | + | | | [:like "Marco Belinelli"->"Danny Green"@0] | | | + | | | [:like "Boris Diaw"->"Tony Parker"@0] | | | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | | | + | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | | | + | | | [:like "Marco Belinelli"->"Tony Parker"@0] | | | + | | | [:like "Tim Duncan"->"Tony Parker"@0] | | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | + | <[vertex3]> | <[edge3]> | Scenario: in and out edge When executing query: """ GET SUBGRAPH 2 STEPS FROM 'Tim Duncan' IN like OUT serve """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:serve "Tim Duncan"->"Spurs"@0] | ("Manu Ginobili") | [:serve "Manu Ginobili"->"Spurs"@0] | ("Raptors") | [:serve "Rudy Gay"->"Raptors"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Jazz") | [:serve "Damian Lillard"->"Trail Blazers"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Cavaliers") | [:serve "Rudy Gay"->"Kings"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Pistons") | [:serve "Rudy Gay"->"Spurs"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Kings") | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:serve "Danny Green"->"Raptors"@0] | ("Hornets") | [:teammate "Tim Duncan"->"Danny Green"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Danny Green"->"Spurs"@0] | ("Spurs") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Rudy Gay") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Tony Parker"->"Hornets"@0] | ("Hawks") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | | | [:serve "Tony Parker"->"Spurs"@0] | ("Heat") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Lakers") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Celtics") | | - | | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Suns") | | - | | | | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Magic") | | - | | | | [:like "Tim Duncan"->"Tony Parker"@0] | ("Trail Blazers") | | - | | | | [:serve "Aron Baynes"->"Celtics"@0] | ("76ers") | | - | | | | [:serve "Aron Baynes"->"Pistons"@0] | ("Bulls") | | - | | | | [:serve "Aron Baynes"->"Spurs"@0] | ("Warriors") | | - | | | | [:serve "Boris Diaw"->"Hawks"@0] | | | - | | | | [:serve "Boris Diaw"->"Hornets"@0] | | | - | | | | [:serve "Boris Diaw"->"Jazz"@0] | | | - | | | | [:serve "Boris Diaw"->"Spurs"@0] | | | - | | | | [:serve "Boris Diaw"->"Suns"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | | | - | | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | | | - | | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | | | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | - | | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | - | | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | - | | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | - | | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | - | | | | [:serve "Marco Belinelli"->"76ers"@0] | | | - | | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | - | | | | [:serve "Marco Belinelli"->"Kings"@0] | | | - | | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | - | | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | - | | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | - | | | | [:like "Danny Green"->"Marco Belinelli"@0] | | | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | - | | | | [:serve "Tiago Splitter"->"76ers"@0] | | | - | | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | + Then define some list variables: + | edge1 | vertex2 | edge2 | vertex3 | edge3 | + | [:serve "Tim Duncan"->"Spurs"@0] | ("Manu Ginobili") | [:serve "Manu Ginobili"->"Spurs"@0] | ("Raptors") | [:serve "Rudy Gay"->"Raptors"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Jazz") | [:serve "Damian Lillard"->"Trail Blazers"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | ("Cavaliers") | [:serve "Rudy Gay"->"Kings"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Tim Duncan"->"Manu Ginobili"@0] | ("Pistons") | [:serve "Rudy Gay"->"Spurs"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Boris Diaw") | [:like "Tony Parker"->"Manu Ginobili"@0] | ("Damian Lillard") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:serve "Danny Green"->"Cavaliers"@0] | ("Kings") | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:serve "Danny Green"->"Raptors"@0] | ("Hornets") | [:teammate "Tim Duncan"->"Danny Green"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Danny Green"->"Spurs"@0] | ("Spurs") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Danny Green"@0] | ("Rudy Gay") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:like "Marco Belinelli"->"Danny Green"@0] | ("Yao Ming") | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:serve "Tony Parker"->"Hornets"@0] | ("Hawks") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | | | [:serve "Tony Parker"->"Spurs"@0] | ("Heat") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | | | [:like "Boris Diaw"->"Tony Parker"@0] | ("Lakers") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Celtics") | | + | | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Suns") | | + | | | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Magic") | | + | | | [:like "Tim Duncan"->"Tony Parker"@0] | ("Trail Blazers") | | + | | | [:serve "Aron Baynes"->"Celtics"@0] | ("76ers") | | + | | | [:serve "Aron Baynes"->"Pistons"@0] | ("Bulls") | | + | | | [:serve "Aron Baynes"->"Spurs"@0] | ("Warriors") | | + | | | [:serve "Boris Diaw"->"Hawks"@0] | | | + | | | [:serve "Boris Diaw"->"Hornets"@0] | | | + | | | [:serve "Boris Diaw"->"Jazz"@0] | | | + | | | [:serve "Boris Diaw"->"Spurs"@0] | | | + | | | [:serve "Boris Diaw"->"Suns"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Cavaliers"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Celtics"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Heat"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Lakers"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Magic"@0] | | | + | | | [:serve "Shaquile O\'Neal"->"Suns"@0] | | | + | | | [:like "Yao Ming"->"Shaquile O\'Neal"@0] | | | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | | | + | | | [:serve "LaMarcus Aldridge"->"Trail Blazers"@0] | | | + | | | [:like "Damian Lillard"->"LaMarcus Aldridge"@0] | | | + | | | [:like "Rudy Gay"->"LaMarcus Aldridge"@0] | | | + | | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | | | + | | | [:serve "Marco Belinelli"->"76ers"@0] | | | + | | | [:serve "Marco Belinelli"->"Bulls"@0] | | | + | | | [:serve "Marco Belinelli"->"Hawks"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@0] | | | + | | | [:serve "Marco Belinelli"->"Kings"@0] | | | + | | | [:serve "Marco Belinelli"->"Raptors"@0] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | | | + | | | [:serve "Marco Belinelli"->"Warriors"@0] | | | + | | | [:serve "Marco Belinelli"->"Hornets"@1] | | | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | | | + | | | [:like "Danny Green"->"Marco Belinelli"@0] | | | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | | | + | | | [:serve "Tiago Splitter"->"76ers"@0] | | | + | | | [:serve "Tiago Splitter"->"Hawks"@0] | | | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | + | <[vertex3]> | <[edge3]> | Scenario: two steps in and out edge When executing query: """ GET SUBGRAPH 2 STEPS FROM 'Tim Duncan', 'James Harden' IN teammate OUT serve """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | - | ("Tim Duncan") | [:serve "Tim Duncan"->"Spurs"@0] | ("Manu Ginobili") | [:serve "Manu Ginobili"->"Spurs"@0] | ("Hornets") | [:like "Manu Ginobili"->"Tim Duncan"@0] | - | ("James Harden") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Tony Parker") | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | ("Spurs") | [:like "Tony Parker"->"Tim Duncan"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | | [:like "Tim Duncan"->"Manu Ginobili"@0] | - | | [:serve "James Harden"->"Rockets"@0] | | [:serve "Tony Parker"->"Hornets"@0] | | [:like "Tim Duncan"->"Tony Parker"@0] | - | | [:serve "James Harden"->"Thunders"@0] | | [:serve "Tony Parker"->"Spurs"@0] | | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | | | - | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | | + Then define some list variables: + | edge1 | edge2 | edge3 | + | [:serve "Tim Duncan"->"Spurs"@0] | [:serve "Manu Ginobili"->"Spurs"@0] | [:like "Manu Ginobili"->"Tim Duncan"@0] | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | [:like "Tony Parker"->"Tim Duncan"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | [:teammate "Tony Parker"->"Manu Ginobili"@0] | [:like "Tim Duncan"->"Manu Ginobili"@0] | + | [:serve "James Harden"->"Rockets"@0] | [:serve "Tony Parker"->"Hornets"@0] | [:like "Tim Duncan"->"Tony Parker"@0] | + | [:serve "James Harden"->"Thunders"@0] | [:serve "Tony Parker"->"Spurs"@0] | [:like "Tony Parker"->"Manu Ginobili"@0] | + | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | | + | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | + | _vertices | _edges | + | [("Tim Duncan"), ("James Harden")] | <[edge1]> | + | [("Manu Ginobili"), ("Tony Parker")] | <[edge2]> | + | [("Hornets"), ("Spurs")] | <[edge3]> | Scenario: three steps When executing query: """ GET SUBGRAPH 3 STEPS FROM 'Paul George' OUT serve BOTH like """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | vertex3 | edge3 | vertex4 | edge4 | - | ("Paul George") | [:like "Russell Westbrook"->"Paul George"@0] | ("Russell Westbrook") | [:like "Dejounte Murray"->"Russell Westbrook"@0] | ("Dejounte Murray") | [:serve "Dejounte Murray"->"Spurs"@0] | ("LeBron James") | [:like "Chris Paul"->"LeBron James"@0] | - | | [:serve "Paul George"->"Pacers"@0] | | [:like "James Harden"->"Russell Westbrook"@0] | ("James Harden") | [:like "Dejounte Murray"->"Chris Paul"@0] | ("Marco Belinelli") | [:like "Danny Green"->"LeBron James"@0] | - | | [:serve "Paul George"->"Thunders"@0] | | [:serve "Russell Westbrook"->"Thunders"@0] | | [:like "Dejounte Murray"->"Danny Green"@0] | ("Danny Green") | [:like "Danny Green"->"Marco Belinelli"@0] | - | | [:like "Paul George"->"Russell Westbrook"@0] | | [:like "Russell Westbrook"->"James Harden"@0] | | [:like "Dejounte Murray"->"James Harden"@0] | ("Rockets") | [:like "Marco Belinelli"->"Danny Green"@0] | - | | | | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | ("Spurs") | [:like "Marco Belinelli"->"Tim Duncan"@0] | - | | | | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | ("Kevin Durant") | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | | | | | [:like "Dejounte Murray"->"LeBron James"@0] | ("Kyle Anderson") | [:serve "Marco Belinelli"->"Spurs"@0] | - | | | | | | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Tim Duncan") | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | ("Tony Parker") | [:teammate "Tim Duncan"->"Danny Green"@0] | - | | | | | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Chris Paul") | [:like "Danny Green"->"Tim Duncan"@0] | - | | | | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Luka Doncic") | [:serve "Danny Green"->"Spurs"@0] | - | | | | | | [:like "Luka Doncic"->"James Harden"@0] | ("Manu Ginobili") | [:serve "Chris Paul"->"Rockets"@0] | - | | | | | | [:serve "James Harden"->"Rockets"@0] | ("Pacers") | [:serve "Kyle Anderson"->"Spurs"@0] | - | | | | | | [:serve "James Harden"->"Thunders"@0] | ("Thunders") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | | | | | | | [:serve "Tim Duncan"->"Spurs"@0] | - | | | | | | | | [:serve "Tony Parker"->"Spurs"@0] | - | | | | | | | | [:serve "Kevin Durant"->"Thunders"@0] | - | | | | | | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | - | | | | | | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | | | | | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | | | | | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | - | | | | | | | | [:like "Tony Parker"->"Tim Duncan"@0] | - | | | | | | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | - | | | | | | | | [:like "Tim Duncan"->"Tony Parker"@0] | - | | | | | | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | | | | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | | | | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | | | | | | | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | | | | | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + Then define some list variables: + | edge1 | edge2 | edge3 | vertex4 | edge4 | + | [:like "Russell Westbrook"->"Paul George"@0] | [:like "Dejounte Murray"->"Russell Westbrook"@0] | [:serve "Dejounte Murray"->"Spurs"@0] | ("LeBron James") | [:like "Chris Paul"->"LeBron James"@0] | + | [:serve "Paul George"->"Pacers"@0] | [:like "James Harden"->"Russell Westbrook"@0] | [:like "Dejounte Murray"->"Chris Paul"@0] | ("Marco Belinelli") | [:like "Danny Green"->"LeBron James"@0] | + | [:serve "Paul George"->"Thunders"@0] | [:serve "Russell Westbrook"->"Thunders"@0] | [:like "Dejounte Murray"->"Danny Green"@0] | ("Danny Green") | [:like "Danny Green"->"Marco Belinelli"@0] | + | [:like "Paul George"->"Russell Westbrook"@0] | [:like "Russell Westbrook"->"James Harden"@0] | [:like "Dejounte Murray"->"James Harden"@0] | ("Rockets") | [:like "Marco Belinelli"->"Danny Green"@0] | + | | | [:like "Dejounte Murray"->"Kevin Durant"@0] | ("Spurs") | [:like "Marco Belinelli"->"Tim Duncan"@0] | + | | | [:like "Dejounte Murray"->"Kyle Anderson"@0] | ("Kevin Durant") | [:like "Marco Belinelli"->"Tony Parker"@0] | + | | | [:like "Dejounte Murray"->"LeBron James"@0] | ("Kyle Anderson") | [:serve "Marco Belinelli"->"Spurs"@0] | + | | | [:like "Dejounte Murray"->"Manu Ginobili"@0] | ("Tim Duncan") | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | ("Tony Parker") | [:teammate "Tim Duncan"->"Danny Green"@0] | + | | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Chris Paul") | [:like "Danny Green"->"Tim Duncan"@0] | + | | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("Luka Doncic") | [:serve "Danny Green"->"Spurs"@0] | + | | | [:like "Luka Doncic"->"James Harden"@0] | ("Manu Ginobili") | [:serve "Chris Paul"->"Rockets"@0] | + | | | [:serve "James Harden"->"Rockets"@0] | ("Pacers") | [:serve "Kyle Anderson"->"Spurs"@0] | + | | | [:serve "James Harden"->"Thunders"@0] | ("Thunders") | [:serve "Manu Ginobili"->"Spurs"@0] | + | | | | | [:serve "Tim Duncan"->"Spurs"@0] | + | | | | | [:serve "Tony Parker"->"Spurs"@0] | + | | | | | [:serve "Kevin Durant"->"Thunders"@0] | + | | | | | [:teammate "Tony Parker"->"Kyle Anderson"@0] | + | | | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | | | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | | | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | + | | | | | [:like "Tony Parker"->"Tim Duncan"@0] | + | | | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | + | | | | | [:like "Tim Duncan"->"Tony Parker"@0] | + | | | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | | | | | [:like "Tony Parker"->"Manu Ginobili"@0] | + | | | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | - | vertex3 | edge3 | - | vertex4 | edge4 | + | _vertices | _edges | + | [("Paul George")] | <[edge1]> | + | [("Russell Westbrook")] | <[edge2]> | + | [("Dejounte Murray"), ("James Harden")] | <[edge3]> | + | <[vertex4]> | <[edge4]> | Scenario: bidirect edge When executing query: """ GET SUBGRAPH FROM 'Tony Parker' BOTH like """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tony Parker") | [:like "Boris Diaw"->"Tony Parker"@0] | ("Dejounte Murray") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "Dejounte Murray"->"Tony Parker"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Marco Belinelli"@0] | - | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tim Duncan"@0] | - | | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | ("Tim Duncan") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | ("Manu Ginobili") | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | - | | [:like "Tony Parker"->"Manu Ginobili"@0] | | [:like "Marco Belinelli"->"Tim Duncan"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tim Duncan"@0] | - | | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | - | | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | - | | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | - | | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | - | | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | - | | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | - | | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:like "Boris Diaw"->"Tony Parker"@0] | ("Dejounte Murray") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "Dejounte Murray"->"Tony Parker"@0] | ("LaMarcus Aldridge") | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | ("Marco Belinelli") | [:like "Dejounte Murray"->"Tim Duncan"@0] | + | [:like "Marco Belinelli"->"Tony Parker"@0] | ("Boris Diaw") | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | ("Tim Duncan") | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | ("Manu Ginobili") | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | + | [:like "Tony Parker"->"Manu Ginobili"@0] | | [:like "Marco Belinelli"->"Tim Duncan"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tim Duncan"@0] | + | | | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | + | | | [:teammate "Tony Parker"->"Tim Duncan"@0] | + | | | [:like "Manu Ginobili"->"Tim Duncan"@0] | + | | | [:like "Tim Duncan"->"Manu Ginobili"@0] | + | | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | + | | | [:teammate "Tim Duncan"->"Tony Parker"@0] | + | | | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | | | [:teammate "Manu Ginobili"->"Tony Parker"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tony Parker")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | Scenario: pipe When executing query: """ GO FROM 'Tim Duncan' over serve YIELD serve._src AS id | GET SUBGRAPH FROM $-.id """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | Scenario: var When executing query: @@ -446,34 +445,34 @@ Feature: subgraph $a = GO FROM 'Tim Duncan' over serve YIELD serve._src AS id; GET SUBGRAPH FROM $a.id """ - Then example - | vertex1 | edge1 | vertex2 | edge2 | - | ("Tim Duncan") | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | - | | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | - | | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | - | | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | - | | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | - | | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | - | | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | - | | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | - | | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | - | | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | - | | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | - | | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | - | | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | - | | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | - | | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | - | | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | - | | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | - | | | | [:serve "Dejounte Murray"->"Spurs"@0] | - | | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@0] | - | | | | [:serve "Tiago Splitter"->"Spurs"@0] | - | | | | [:serve "Marco Belinelli"->"Spurs"@1] | - | | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | + Then define some list variables: + | edge1 | vertex2 | edge2 | + | [:teammate "Manu Ginobili"->"Tim Duncan"@0] | ("Danny Green") | [:like "Dejounte Murray"->"Danny Green"@0] | + | [:teammate "Tony Parker"->"Tim Duncan"@0] | ("Manu Ginobili") | [:like "Marco Belinelli"->"Danny Green"@0] | + | [:like "Aron Baynes"->"Tim Duncan"@0] | ("Aron Baynes") | [:like "Danny Green"->"Marco Belinelli"@0] | + | [:like "Boris Diaw"->"Tim Duncan"@0] | ("Boris Diaw") | [:serve "Danny Green"->"Spurs"@0] | + | [:like "Danny Green"->"Tim Duncan"@0] | ("Shaquile O\'Neal") | [:teammate "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Dejounte Murray"->"Tim Duncan"@0] | ("Tony Parker") | [:like "Dejounte Murray"->"Manu Ginobili"@0] | + | [:like "LaMarcus Aldridge"->"Tim Duncan"@0] | ("Spurs") | [:like "Tiago Splitter"->"Manu Ginobili"@0] | + | [:like "Manu Ginobili"->"Tim Duncan"@0] | ("Dejounte Murray") | [:like "Tony Parker"->"Manu Ginobili"@0] | + | [:like "Marco Belinelli"->"Tim Duncan"@0] | ("LaMarcus Aldridge") | [:serve "Manu Ginobili"->"Spurs"@0] | + | [:like "Shaquile O\'Neal"->"Tim Duncan"@0] | ("Marco Belinelli") | [:teammate "Manu Ginobili"->"Tony Parker"@0] | + | [:like "Tiago Splitter"->"Tim Duncan"@0] | ("Tiago Splitter") | [:serve "Aron Baynes"->"Spurs"@0] | + | [:like "Tony Parker"->"Tim Duncan"@0] | | [:like "Boris Diaw"->"Tony Parker"@0] | + | [:like "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Boris Diaw"->"Spurs"@0] | + | [:like "Tim Duncan"->"Tony Parker"@0] | | [:like "Dejounte Murray"->"Tony Parker"@0] | + | [:serve "Tim Duncan"->"Spurs"@0] | | [:like "LaMarcus Aldridge"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"Danny Green"@0] | | [:like "Marco Belinelli"->"Tony Parker"@0] | + | [:teammate "Tim Duncan"->"LaMarcus Aldridge"@0] | | [:like "Tony Parker"->"LaMarcus Aldridge"@0] | + | [:teammate "Tim Duncan"->"Manu Ginobili"@0] | | [:serve "Tony Parker"->"Spurs"@0] | + | [:teammate "Tim Duncan"->"Tony Parker"@0] | | [:teammate "Tony Parker"->"LaMarcus Aldridge"@0] | + | | | [:serve "Dejounte Murray"->"Spurs"@0] | + | | | [:serve "LaMarcus Aldridge"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@0] | + | | | [:serve "Tiago Splitter"->"Spurs"@0] | + | | | [:serve "Marco Belinelli"->"Spurs"@1] | + | | | [:like "Dejounte Murray"->"Marco Belinelli"@0] | Then the result should be, in any order, with relax comparison: - | _vertices | _edges | - | vertex1 | edge1 | - | vertex2 | edge2 | + | _vertices | _edges | + | [("Tim Duncan")] | <[edge1]> | + | <[vertex2]> | <[edge2]> | diff --git a/tests/tck/utils/table.py b/tests/tck/utils/table.py index 69f8adabe2ba70bad01caa4090c299336bbadaf5..c10ea8733f7589a5ac4ba621d14d372bc5d20fc4 100644 --- a/tests/tck/utils/table.py +++ b/tests/tck/utils/table.py @@ -5,14 +5,24 @@ import csv import io +import re from tests.tck.utils.nbv import parse from nebula2.common.ttypes import DataSet, Row, Value +pattern = re.compile(r"^<\[(\w+)\]>$") + + +def _parse_value(cell: str, variables: dict) -> Value: + m = pattern.match(cell) + if m: + var = m.group(1) + assert var in variables, f"Invalid expect variable usages: {cell}" + cell = variables.get(var, None) + assert cell is not None -def _parse_value(cell: str) -> Value: value = parse(cell) - assert value is not None, f'parse error: column is {cell}' + assert value is not None, f"parse error: column is {cell}" return value @@ -31,11 +41,12 @@ def table(text): } -def dataset(string_table): +def dataset(string_table, variables: dict): ds = DataSet() ds.column_names = string_table['column_names'] ds.rows = [ - Row(values=[_parse_value(row[column]) for column in ds.column_names]) - for row in string_table['rows'] + Row(values=[ + _parse_value(row[column], variables) for column in ds.column_names + ]) for row in string_table['rows'] ] return ds