diff --git a/.github/workflows/hqps-db-ci.yml b/.github/workflows/hqps-db-ci.yml
index 08b52da99ffd..a211350a379a 100644
--- a/.github/workflows/hqps-db-ci.yml
+++ b/.github/workflows/hqps-db-ci.yml
@@ -87,7 +87,8 @@ jobs:
INTERACTIVE_WORKSPACE: /tmp/interactive_workspace
run: |
# download dataset
- git clone -b master --single-branch --depth=1 https://github.com/GraphScope/gstest.git ${GS_TEST_DIR}
+ #git clone -b master --single-branch --depth=1 https://github.com/GraphScope/gstest.git ${GS_TEST_DIR}
+ git clone -b master --single-branch --depth=1 https://github.com/zhanglei1949/gstest.git ${GS_TEST_DIR}
mkdir -p ${INTERACTIVE_WORKSPACE}/data/ldbc
GRAPH_SCHEMA_YAML=${GS_TEST_DIR}/flex/ldbc-sf01-long-date/audit_graph_schema.yaml
cp ${GRAPH_SCHEMA_YAML} ${INTERACTIVE_WORKSPACE}/data/ldbc/graph.yaml
@@ -131,6 +132,18 @@ jobs:
eval ${cmd}
done
+ # test movie graph, 8,9,10 are not supported now
+ cp ${GS_TEST_DIR}/flex/movies/movies_schema.yaml ${INTERACTIVE_WORKSPACE}/data/ldbc/graph.yaml
+ for i in 1 2 3 4 5 6 7 11 12 13 14 15;
+ do
+ cmd="./load_plan_and_gen.sh -e=hqps -i=../tests/hqps/queries/movie/query${i}.cypher -w=/tmp/codgen/"
+ cmd=${cmd}" -o=/tmp/plugin --ir_conf=${GS_TEST_DIR}/flex/ldbc-sf01-long-date/engine_config.yaml "
+ cmd=${cmd}" --graph_schema_path=${GS_TEST_DIR}/flex/movies/movies_schema.yaml"
+ cmd=${cmd}" --gie_home=${GIE_HOME}"
+ echo $cmd
+ eval ${cmd}
+ done
+
- name: Run End-to-End cypher adhoc query test
env:
GS_TEST_DIR: ${{ github.workspace }}/gstest
diff --git a/flex/interactive/examples/modern_graph/get_person_name.cypher b/flex/interactive/examples/modern_graph/get_person_name.cypher
index f8c9f275ae4e..fbb3197f3849 100644
--- a/flex/interactive/examples/modern_graph/get_person_name.cypher
+++ b/flex/interactive/examples/modern_graph/get_person_name.cypher
@@ -1 +1 @@
-MATCH(p : person {id: $personId}) RETURN p.name;
\ No newline at end of file
+MATCH(p : person {id: $personId}) RETURN p.name;
diff --git a/flex/tests/hqps/hqps_cypher_test.sh b/flex/tests/hqps/hqps_cypher_test.sh
index 1cb4837dfccf..0d2798b48037 100644
--- a/flex/tests/hqps/hqps_cypher_test.sh
+++ b/flex/tests/hqps/hqps_cypher_test.sh
@@ -37,7 +37,6 @@ if [ ! -d ${INTERACTIVE_WORKSPACE} ]; then
fi
ENGINE_CONFIG_PATH=${GS_TEST_DIR}/flex/ldbc-sf01-long-date/engine_config.yaml
-ORI_GRAPH_SCHEMA_YAML=${GS_TEST_DIR}/flex/ldbc-sf01-long-date/audit_graph_schema.yaml
GRAPH_SCHEMA_YAML=${INTERACTIVE_WORKSPACE}/data/ldbc/graph.yaml
GRAPH_BULK_LOAD_YAML=${GS_TEST_DIR}/flex/ldbc-sf01-long-date/audit_bulk_load.yaml
COMPILER_GRAPH_SCHEMA=${GS_TEST_DIR}/flex/ldbc-sf01-long-date/audit_graph_schema.yaml
@@ -142,12 +141,27 @@ run_simple_test(){
popd
}
+run_movie_test(){
+ echo "run movie test"
+ pushd ${GIE_HOME}/compiler
+ cmd="mvn test -Dtest=com.alibaba.graphscope.cypher.integration.movie.MovieTest"
+ echo "Start movie test: ${cmd}"
+ ${cmd}
+ info "Finish movie test"
+ popd
+}
+
kill_service
start_engine_service
start_compiler_service
run_ldbc_test
run_simple_test
kill_service
+start_engine_service
+start_compiler_service
+# test on movie graph
+run_movie_test
+kill_service
diff --git a/flex/tests/hqps/queries/movie/query1.cypher b/flex/tests/hqps/queries/movie/query1.cypher
new file mode 100644
index 000000000000..d08ec9d27a68
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query1.cypher
@@ -0,0 +1 @@
+MATCH (tom:Person) WHERE tom.name = "Tom Hanks" RETURN tom.born AS bornYear,tom.name AS personName;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query10.cypher b/flex/tests/hqps/queries/movie/query10.cypher
new file mode 100644
index 000000000000..4787fc5f03ec
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query10.cypher
@@ -0,0 +1,4 @@
+MATCH p=shortestPath(
+ (bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
+)
+RETURN p;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query11.cypher b/flex/tests/hqps/queries/movie/query11.cypher
new file mode 100644
index 000000000000..dce31d22c22c
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query11.cypher
@@ -0,0 +1,2 @@
+MATCH (tom:Person {name: 'Tom Hanks'})-[r:ACTED_IN]->(movie:Movie)
+RETURN tom.id AS personId, movie.title as movieTitle, movie.released as movieReleased;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query12.cypher b/flex/tests/hqps/queries/movie/query12.cypher
new file mode 100644
index 000000000000..5f7f64a02c7a
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query12.cypher
@@ -0,0 +1,2 @@
+MATCH (tom:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(coActor:Person)
+RETURN coActor.name;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query13.cypher b/flex/tests/hqps/queries/movie/query13.cypher
new file mode 100644
index 000000000000..90b890ab0899
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query13.cypher
@@ -0,0 +1,4 @@
+MATCH (tom:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(coActor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:ACTED_IN]-(coCoActor:Person)
+WHERE tom <> coCoActor
+AND NOT (tom)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(coCoActor)
+RETURN coCoActor.name
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query14.cypher b/flex/tests/hqps/queries/movie/query14.cypher
new file mode 100644
index 000000000000..c872529024b2
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query14.cypher
@@ -0,0 +1,6 @@
+MATCH (tom:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(coActor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:ACTED_IN]-(coCoActor:Person)
+WHERE tom <> coCoActor
+AND NOT (tom)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(coCoActor)
+RETURN coCoActor.name, count(coCoActor) as frequency
+ORDER BY frequency DESC
+LIMIT 5;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query15.cypher b/flex/tests/hqps/queries/movie/query15.cypher
new file mode 100644
index 000000000000..d94b9afcd102
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query15.cypher
@@ -0,0 +1,3 @@
+MATCH (tom:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(coActor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:ACTED_IN]-(cruise:Person {name: 'Tom Cruise'})
+WHERE NOT (tom)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(cruise)
+RETURN tom.name AS actorName, movie1.title AS actedInMovie, coActor.name AS coActorName, movie2.title AS coActorActivedInMovie, cruise.name AS coCoActorName;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query2.cypher b/flex/tests/hqps/queries/movie/query2.cypher
new file mode 100644
index 000000000000..f5a2260cb74e
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query2.cypher
@@ -0,0 +1 @@
+MATCH (cloudAtlas:Movie {title: "Cloud Atlas"}) RETURN cloudAtlas.tagline AS tagline, cloudAtlas.released AS releasedYear,cloudAtlas.title AS title;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query3.cypher b/flex/tests/hqps/queries/movie/query3.cypher
new file mode 100644
index 000000000000..199dd3678564
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query3.cypher
@@ -0,0 +1 @@
+MATCH (people:Person) RETURN people.name LIMIT 10;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query4.cypher b/flex/tests/hqps/queries/movie/query4.cypher
new file mode 100644
index 000000000000..5f708cd4c464
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query4.cypher
@@ -0,0 +1 @@
+MATCH (nineties:Movie) WHERE nineties.released >= 1990 AND nineties.released < 2000 RETURN nineties.title;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query5.cypher b/flex/tests/hqps/queries/movie/query5.cypher
new file mode 100644
index 000000000000..792f2957234f
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query5.cypher
@@ -0,0 +1,2 @@
+MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies)
+RETURN tom.born AS bornYear,tomHanksMovies.tagline AS movieTagline, tomHanksMovies.title AS movieTitle, tomHanksMovies.released AS releaseYear;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query6.cypher b/flex/tests/hqps/queries/movie/query6.cypher
new file mode 100644
index 000000000000..d7efbdec2ca3
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query6.cypher
@@ -0,0 +1,2 @@
+MATCH (cloudAtlas:Movie {title: "Cloud Atlas"})<-[:DIRECTED]-(directors)
+RETURN directors.name;
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query7.cypher b/flex/tests/hqps/queries/movie/query7.cypher
new file mode 100644
index 000000000000..8fe4d19805dc
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query7.cypher
@@ -0,0 +1,2 @@
+MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors)
+RETURN m.title AS movieTitle, m.released AS releasedYear, coActors.name AS coActor
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query8.cypher b/flex/tests/hqps/queries/movie/query8.cypher
new file mode 100644
index 000000000000..3335a4621dfd
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query8.cypher
@@ -0,0 +1,2 @@
+MATCH (people:Person)-[relatedTo]-(:Movie {title: "Cloud Atlas"})
+RETURN people.name, type(relatedTo), relatedTo
\ No newline at end of file
diff --git a/flex/tests/hqps/queries/movie/query9.cypher b/flex/tests/hqps/queries/movie/query9.cypher
new file mode 100644
index 000000000000..951cef1edf3c
--- /dev/null
+++ b/flex/tests/hqps/queries/movie/query9.cypher
@@ -0,0 +1,2 @@
+MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..3]-(hollywood)
+RETURN DISTINCT bacon, hollywood
\ No newline at end of file
diff --git a/interactive_engine/compiler/pom.xml b/interactive_engine/compiler/pom.xml
index 1af1b5bb93bb..590a7928cccf 100644
--- a/interactive_engine/compiler/pom.xml
+++ b/interactive_engine/compiler/pom.xml
@@ -253,6 +253,7 @@
**/IrLdbcTest.java
**/SimpleMatchTest.java
**/IrPatternTest.java
+ **/MovieTest.java
diff --git a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/cypher/integration/suite/ldbc/MovieQueries.java b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/cypher/integration/suite/ldbc/MovieQueries.java
new file mode 100644
index 000000000000..fcd596889f86
--- /dev/null
+++ b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/cypher/integration/suite/ldbc/MovieQueries.java
@@ -0,0 +1,171 @@
+package com.alibaba.graphscope.cypher.integration.suite.ldbc;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class MovieQueries {
+ public static QueryContext get_movie_query1_test() {
+ String query =
+ "MATCH (tom:Person) WHERE tom.name = \"Tom Hanks\" RETURN tom.born AS"
+ + " bornYear,tom.name AS personName;";
+ List expected =
+ Arrays.asList("Record<{bornYear: 1956, personName: \"Tom Hanks\"}>");
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query2_test() {
+ String query =
+ "MATCH (cloudAtlas:Movie {title: \"Cloud Atlas\"}) RETURN cloudAtlas.tagline AS"
+ + " tagLine, cloudAtlas.release AS releasedYear,cloudAtlas.title AS title;";
+ List expected =
+ Arrays.asList(
+ "Record<{tagline: \"Everything is connected\", releasedYear: 2012, title:"
+ + " \"Cloud Atlas\"}>");
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query3_test() {
+ String query = "MATCH (people:Person) RETURN people.name LIMIT 10;";
+ List expected =
+ Arrays.asList(
+ "Record<{people.name: \"Keanu Reeves\"}>",
+ "Record<{people.name: \"Carrie-Anne Moss\"}>",
+ "Record<{people.name: \"Laurence Fishburne\"}>",
+ "Record<{people.name: \"Hugo Weaving\"}>",
+ "Record<{people.name: \"Lilly Wachowski\"}>",
+ "Record<{people.name: \"Lana Wachowski\"}>",
+ "Record<{people.name: \"Joel Silver\"}>",
+ "Record<{people.name: \"Emil Eifrem\"}>",
+ "Record<{people.name: \"Charlize Theron\"}>",
+ "Record<{people.name: \"Al Pacino\"}>");
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query4_test() {
+ String query =
+ "MATCH (nineties:Movie) WHERE nineties.released >= 1990 AND nineties.released <"
+ + " 2000 RETURN nineties.title LIMIT 10;";
+ List expected =
+ Arrays.asList(
+ "Record<{nineties.title: \"The Matrix\"}>",
+ "Record<{nineties.title: \"The Devil's Advocate\"}>",
+ "Record<{nineties.title: \"A Few Good Men\"}>",
+ "Record<{nineties.title: \"As Good as It Gets\"}>",
+ "Record<{nineties.title: \"What Dreams May Come\"}>",
+ "Record<{nineties.title: \"Snow Falling on Cedars\"}>",
+ "Record<{nineties.title: \"You've Got Mail\"}>",
+ "Record<{nineties.title: \"Sleepless in Seattle\"}>",
+ "Record<{nineties.title: \"Joe Versus the Volcano\"}>",
+ "Record<{nineties.title: \"When Harry Met Sally\"}>");
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query5_test() {
+ String query =
+ "MATCH (tom:Person {name: \"Tom Hanks\"})-[:ACTED_IN]->(tomHanksMovies)\n"
+ + "RETURN tom.born AS bornYear, tomHanksMovies.tagline AS movieTagline,"
+ + " tomHanksMovies.title AS movieTitle, tomHanksMovies.released AS"
+ + " releaseYear;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query6_test() {
+ String query =
+ "MATCH (cloudAtlas:Movie {title: \"Cloud Atlas\"})<-[:DIRECTED]-(directors)\n"
+ + "RETURN directors.name;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query7_test() {
+ String query =
+ "MATCH (tom:Person {name:\"Tom Hanks\"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors)\n"
+ + "RETURN m.title AS movieTitle, m.released AS releasedYear, coActors.name AS"
+ + " coActor";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query8_test() {
+ String query =
+ "MATCH (people:Person)-[relatedTo]-(:Movie {title: \"Cloud Atlas\"})\n"
+ + "RETURN people.name, type(relatedTo), relatedTo";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query9_test() {
+ String query =
+ "MATCH (bacon:Person {name:\"Kevin Bacon\"})-[*1..3]-(hollywood)\n"
+ + "RETURN DISTINCT bacon, hollywood";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query10_test() {
+ String query =
+ "MATCH p=shortestPath(\n"
+ + " (bacon:Person {name:\"Kevin Bacon\"})-[*]-(meg:Person {name:\"Meg"
+ + " Ryan\"})\n"
+ + ")\n"
+ + "RETURN p;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query11_test() {
+ String query =
+ "MATCH (tom:Person {name: 'Tom Hanks'})-[r:ACTED_IN]->(movie:Movie)\n"
+ + "RETURN tom.id AS personId, movie.title as movieTitle, movie.released as"
+ + " movieReleased;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query12_test() {
+ String query =
+ "MATCH (tom:Person {name: 'Tom"
+ + " Hanks'})-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(coActor:Person)\n"
+ + "RETURN coActor.name;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query13_test() {
+ String query =
+ "MATCH (tom:Person {name: 'Tom"
+ + " Hanks'})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(coActor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:ACTED_IN]-(coCoActor:Person)\n"
+ + "WHERE tom <> coCoActor\n"
+ + "AND NOT (tom)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(coCoActor)\n"
+ + "RETURN coCoActor.name";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query14_test() {
+ String query =
+ "MATCH (tom:Person {name: 'Tom"
+ + " Hanks'})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(coActor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:ACTED_IN]-(coCoActor:Person)\n"
+ + "WHERE tom <> coCoActor\n"
+ + "AND NOT (tom)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(coCoActor)\n"
+ + "RETURN coCoActor.name, count(coCoActor) as frequency\n"
+ + "ORDER BY frequency DESC\n"
+ + "LIMIT 5;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+
+ public static QueryContext get_movie_query15_test() {
+ String query =
+ "MATCH (tom:Person {name: 'Tom"
+ + " Hanks'})-[:ACTED_IN]->(movie1:Movie)<-[:ACTED_IN]-(coActor:Person)-[:ACTED_IN]->(movie2:Movie)<-[:ACTED_IN]-(cruise:Person"
+ + " {name: 'Tom Cruise'})\n"
+ + "WHERE NOT (tom)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(cruise)\n"
+ + "RETURN tom.name AS actorName, movie1.title AS actedInMovie, coActor.name AS"
+ + " coActorName, movie2.title AS coActorActivedInMovie, cruise.name AS"
+ + " coCoActorName;";
+ List expected = Arrays.asList();
+ return new QueryContext(query, expected);
+ }
+}
diff --git a/interactive_engine/compiler/src/test/java/com/alibaba/graphscope/cypher/integration/movie/MovieTest.java b/interactive_engine/compiler/src/test/java/com/alibaba/graphscope/cypher/integration/movie/MovieTest.java
new file mode 100644
index 000000000000..96b9dac6e904
--- /dev/null
+++ b/interactive_engine/compiler/src/test/java/com/alibaba/graphscope/cypher/integration/movie/MovieTest.java
@@ -0,0 +1,115 @@
+package com.alibaba.graphscope.cypher.integration.movie;
+
+import com.alibaba.graphscope.cypher.integration.suite.ldbc.MovieQueries;
+import com.alibaba.graphscope.cypher.integration.suite.ldbc.QueryContext;
+
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.neo4j.driver.GraphDatabase;
+import org.neo4j.driver.Result;
+import org.neo4j.driver.Session;
+
+public class MovieTest {
+
+ private static Session session;
+
+ @BeforeClass
+ public static void beforeClass() {
+ String neo4jServerUrl =
+ System.getProperty("neo4j.bolt.server.url", "neo4j://localhost:7687");
+ session = GraphDatabase.driver(neo4jServerUrl).session();
+ }
+
+ @Test
+ public void run_movie_query1_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query1_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query2_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query2_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query3_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query3_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query4_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query4_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query5_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query5_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query6_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query6_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query7_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query7_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query11_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query11_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query12_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query12_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query13_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query13_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query14_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query14_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @Test
+ public void run_movie_query15_test() {
+ QueryContext testQuery = MovieQueries.get_movie_query15_test();
+ Result result = session.run(testQuery.getQuery());
+ Assert.assertEquals(testQuery.getExpectedResult().toString(), result.list().toString());
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ if (session != null) {
+ session.close();
+ }
+ }
+}