You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by fe...@apache.org on 2018/12/20 06:44:54 UTC
[zeppelin] 03/03: fix checkstyle
This is an automated email from the ASF dual-hosted git repository.
felixcheung pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
commit 5542262568b3532fd11e2832d3168b386f35b3d6
Author: Andrea Santurbano <sa...@gmail.com>
AuthorDate: Thu Nov 29 09:44:11 2018 +0100
fix checkstyle
---
.../graph/neo4j/Neo4jCypherInterpreter.java | 14 +++
.../graph/neo4j/Neo4jCypherInterpreterTest.java | 101 ++++++++++++++++++---
2 files changed, 100 insertions(+), 15 deletions(-)
diff --git a/neo4j/src/main/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreter.java b/neo4j/src/main/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreter.java
index bcb9d7b..d7f8485 100644
--- a/neo4j/src/main/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreter.java
+++ b/neo4j/src/main/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreter.java
@@ -201,6 +201,20 @@ public class Neo4jCypherInterpreter extends Interpreter {
value = val.asList();
} else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.MAP())) {
value = val.asMap();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.POINT())) {
+ value = val.asPoint();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.DATE())) {
+ value = val.asLocalDate();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.TIME())) {
+ value = val.asOffsetTime();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.LOCAL_TIME())) {
+ value = val.asLocalTime();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.LOCAL_DATE_TIME())) {
+ value = val.asLocalDateTime();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.DATE_TIME())) {
+ value = val.asZonedDateTime();
+ } else if (val.hasType(InternalTypeSystem.TYPE_SYSTEM.DURATION())) {
+ value = val.asIsoDuration();
}
}
if (value instanceof Collection) {
diff --git a/neo4j/src/test/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreterTest.java b/neo4j/src/test/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreterTest.java
index f44cd77..7940d5f 100644
--- a/neo4j/src/test/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreterTest.java
+++ b/neo4j/src/test/java/org/apache/zeppelin/graph/neo4j/Neo4jCypherInterpreterTest.java
@@ -55,10 +55,15 @@ public class Neo4jCypherInterpreterTest {
private static final String REL_KNOWS = "KNOWS";
private static final String CYPHER_FOREACH =
- "FOREACH (x in range(1,100) | CREATE (:%s{name: \"name\" + x, age: %s, address: point({ longitude: 56.7, latitude: 12.78, height: 8 }), birth: date('1984-04-04')}))";
+ "FOREACH (x in range(1,100) | CREATE (:%s{name: \"name\" + x, age: %s, " +
+ "address: point({ longitude: 56.7, latitude: 12.78, height: 8 }), " +
+ "birth: date('1984-04-04')}))";
private static final String CHPHER_UNWIND = "UNWIND range(1,100) as x "
+ "MATCH (n), (m) WHERE id(n) = x AND id(m) = toInt(rand() * 100) "
+ "CREATE (n)-[:%s]->(m)";
+
+ private static final String TABLE_RESULT_PREFIX = "%table ";
+ private static final String NETWORK_RESULT_PREFIX = "%network ";
@BeforeClass
public static void setUpNeo4jServer() throws Exception {
@@ -73,7 +78,7 @@ public class Neo4jCypherInterpreterTest {
public static void tearDownNeo4jServer() throws Exception {
server.close();
}
-
+
@Before
public void setUpZeppelin() {
Properties p = new Properties();
@@ -83,7 +88,7 @@ public class Neo4jCypherInterpreterTest {
interpreter = new Neo4jCypherInterpreter(p);
context = InterpreterContext.builder()
.setInterpreterOut(new InterpreterOutput(null))
- .build();;
+ .build();
}
@After
@@ -98,14 +103,15 @@ public class Neo4jCypherInterpreterTest {
"return 'a' as colA, 'b' as colB, [1, 2, 3] as colC", context);
assertEquals(Code.SUCCESS, result.code());
final String tableResult = "colA\tcolB\tcolC\n\"a\"\t\"b\"\t[1,2,3]\n";
- assertEquals(tableResult, result.toString().replace("%table ", StringUtils.EMPTY));
-
+ assertEquals(tableResult, result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+
result = interpreter.interpret(
"return 'a' as colA, 'b' as colB, [{key: \"value\"}, {key: 1}] as colC", context);
assertEquals(Code.SUCCESS, result.code());
final String tableResultWithMap =
"colA\tcolB\tcolC\n\"a\"\t\"b\"\t[{\"key\":\"value\"},{\"key\":1}]\n";
- assertEquals(tableResultWithMap, result.toString().replace("%table ", StringUtils.EMPTY));
+ assertEquals(tableResultWithMap, result.toString().replace(TABLE_RESULT_PREFIX,
+ StringUtils.EMPTY));
}
@Test
@@ -121,10 +127,14 @@ public class Neo4jCypherInterpreterTest {
interpreter.open();
InterpreterResult result = interpreter.interpret("MATCH (n:Person) "
+ "WHERE n.name IN ['name1', 'name2', 'name3'] "
- + "RETURN n.name AS name, n.age AS age", context);
+ + "RETURN n.name AS name, n.age AS age, "
+ + "n.address AS address, n.birth AS birth", context);
assertEquals(Code.SUCCESS, result.code());
- final String tableResult = "name\tage\n\"name1\"\t1\n\"name2\"\t2\n\"name3\"\t3\n";
- assertEquals(tableResult, result.toString().replace("%table ", StringUtils.EMPTY));
+ final String tableResult = "name\tage\taddress\tbirth\n" +
+ "\"name1\"\t1\tPoint{srid=4979, x=56.7, y=12.78, z=8.0}\t1984-04-04\n" +
+ "\"name2\"\t2\tPoint{srid=4979, x=56.7, y=12.78, z=8.0}\t1984-04-04\n" +
+ "\"name3\"\t3\tPoint{srid=4979, x=56.7, y=12.78, z=8.0}\t1984-04-04\n";
+ assertEquals(tableResult, result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
}
@Test
@@ -136,7 +146,7 @@ public class Neo4jCypherInterpreterTest {
final String objectListKey = "object.listKey";
InterpreterResult result = interpreter.interpret(jsonQuery, context);
assertEquals(Code.SUCCESS, result.code());
- String[] rows = result.toString().replace("%table ", StringUtils.EMPTY)
+ String[] rows = result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY)
.split(Neo4jCypherInterpreter.NEW_LINE);
assertEquals(rows.length, 2);
List<String> header = Arrays.asList(rows[0].split(Neo4jCypherInterpreter.TAB));
@@ -153,7 +163,7 @@ public class Neo4jCypherInterpreterTest {
+ "AS array UNWIND array AS object RETURN object";
result = interpreter.interpret(query, context);
assertEquals(Code.SUCCESS, result.code());
- rows = result.toString().replace("%table ", StringUtils.EMPTY)
+ rows = result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY)
.split(Neo4jCypherInterpreter.NEW_LINE);
assertEquals(rows.length, 3);
header = Arrays.asList(rows[0].split(Neo4jCypherInterpreter.TAB));
@@ -175,7 +185,7 @@ public class Neo4jCypherInterpreterTest {
+ "AS array UNWIND array AS object RETURN object";
result = interpreter.interpret(jsonListWithNullQuery, context);
assertEquals(Code.SUCCESS, result.code());
- rows = result.toString().replace("%table ", StringUtils.EMPTY)
+ rows = result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY)
.split(Neo4jCypherInterpreter.NEW_LINE);
assertEquals(rows.length, 3);
header = Arrays.asList(rows[0].split(Neo4jCypherInterpreter.TAB, -1));
@@ -191,13 +201,13 @@ public class Neo4jCypherInterpreterTest {
assertEquals(row.get(header.indexOf(objectKey)), "value2");
assertEquals(row.get(header.indexOf(objectListKey)),
"[{\"inner\":\"Map1\"},{\"inner\":\"Map2\"}]");
-
+
final String jsonListWithoutListKeyQuery = "WITH [{key: \"value\"},"
+ "{key: \"value2\", listKey: [{inner: \"Map1\"}, {inner: \"Map2\"}]}] "
+ "AS array UNWIND array AS object RETURN object";
result = interpreter.interpret(jsonListWithoutListKeyQuery, context);
assertEquals(Code.SUCCESS, result.code());
- rows = result.toString().replace("%table ", StringUtils.EMPTY)
+ rows = result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY)
.split(Neo4jCypherInterpreter.NEW_LINE);
assertEquals(rows.length, 3);
header = Arrays.asList(rows[0].split(Neo4jCypherInterpreter.TAB, -1));
@@ -219,7 +229,7 @@ public class Neo4jCypherInterpreterTest {
interpreter.open();
InterpreterResult result = interpreter.interpret(
"MATCH (n)-[r:KNOWS]-(m) RETURN n, r, m LIMIT 1", context);
- GraphResult.Graph graph = gson.fromJson(result.toString().replace("%network ",
+ GraphResult.Graph graph = gson.fromJson(result.toString().replace(NETWORK_RESULT_PREFIX,
StringUtils.EMPTY), GraphResult.Graph.class);
assertEquals(2, graph.getNodes().size());
assertEquals(true, graph.getNodes().iterator().next().getLabel().equals(LABEL_PERSON));
@@ -248,4 +258,65 @@ public class Neo4jCypherInterpreterTest {
context);
assertEquals(Code.ERROR, result.code());
}
+
+ @Test
+ public void testDates() {
+ InterpreterResult result = interpreter.interpret(
+ "RETURN datetime('2015-06-24T12:50:35.556+0100') AS theDateTime", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("theDateTime\n2015-06-24T12:50:35.556+01:00\n", result.toString()
+ .replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+
+ result = interpreter.interpret("RETURN localdatetime('2015185T19:32:24') AS theLocalDateTime",
+ context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("theLocalDateTime\n2015-07-04T19:32:24\n", result.toString()
+ .replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+
+ result = interpreter.interpret("RETURN date('+2015-W13-4') AS theDate", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("theDate\n2015-03-26\n", result.toString()
+ .replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+
+ result = interpreter.interpret("RETURN time('125035.556+0100') AS theTime", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("theTime\n12:50:35.556+01:00\n", result.toString().replace(TABLE_RESULT_PREFIX,
+ StringUtils.EMPTY));
+
+ result = interpreter.interpret("RETURN localtime('12:50:35.556') AS theLocalTime", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("theLocalTime\n12:50:35.556\n", result.toString()
+ .replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+ }
+
+ @Test
+ public void testDuration() {
+ InterpreterResult result = interpreter.interpret(
+ "RETURN duration('P14DT16H12M') AS theDuration", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("theDuration\nP0M14DT58320S\n", result.toString()
+ .replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+ }
+
+ @Test
+ public void testPoint() {
+ InterpreterResult result = interpreter.interpret("RETURN point({ x:3, y:0 }) AS cartesian_2d,"
+ + "point({ x:0, y:4, z:1 }) AS cartesian_3d,"
+ + "point({ latitude: 12, longitude: 56 }) AS geo_2d,"
+ + "point({ latitude: 12, longitude: 56, height: 1000 }) AS geo_3d", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("cartesian_2d\tcartesian_3d\tgeo_2d\tgeo_3d\n" +
+ "Point{srid=7203, x=3.0, y=0.0}\tPoint{srid=9157, x=0.0, y=4.0, z=1.0}\t" +
+ "Point{srid=4326, x=56.0, y=12.0}\tPoint{srid=4979, x=56.0, y=12.0, z=1000.0}\n",
+ result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+
+ result = interpreter.interpret(
+ "WITH point({ latitude: 12, longitude: 56, height: 1000 }) AS geo_3d " +
+ "RETURN geo_3d.latitude AS latitude, geo_3d.longitude AS longitude, " +
+ "geo_3d.height AS height", context);
+ assertEquals(Code.SUCCESS, result.code());
+ assertEquals("latitude\tlongitude\theight\n" +
+ "12.0\t56.0\t1000.0\n",
+ result.toString().replace(TABLE_RESULT_PREFIX, StringUtils.EMPTY));
+ }
}