in hugegraph-test/src/main/java/org/apache/hugegraph/core/EdgeCoreTest.java [2110:2293]
public void testQueryEdgesWithLimitOnMultiLevelAndFilterProp() {
HugeGraph graph = graph();
Vertex james = graph.addVertex(T.label, "author", "id", 1,
"name", "James Gosling", "age", 62,
"lived", "Canadian");
for (int i = 0; i < 20; i++) {
Vertex java = graph.addVertex(T.label, "book", "name", "java-" + i);
james.addEdge("authored", java, "score", i % 2);
james.addEdge("write", java, "time", "2020-6-" + i);
}
Vertex louise = graph.addVertex(T.label, "person", "name", "Louise",
"city", "Beijing", "age", 62);
Vertex java0 = graph.addVertex(T.label, "book", "name", "java-0");
louise.addEdge("look", java0, "time", "2020-6-18", "score", 1);
louise.addEdge("look", java0, "time", "2020-6-0", "score", 1);
graph.tx().commit();
// outE
List<Edge> edges = graph.traversal().V()
.outE().has("score", 0)
.toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.outE().has("score", 0)
.limit(11).toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.outE().has("score", 0)
.limit(6).toList();
Assert.assertEquals(6, edges.size());
edges = graph.traversal().V()
.outE().has("score", 1)
.toList();
Assert.assertEquals(12, edges.size());
edges = graph.traversal().V()
.outE().has("score", 1)
.limit(13).toList();
Assert.assertEquals(12, edges.size());
edges = graph.traversal().V()
.outE().has("score", 1)
.limit(7).toList();
Assert.assertEquals(7, edges.size());
edges = graph.traversal().V()
.outE("authored").has("score", 1)
.toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.outE("authored").has("score", 1)
.limit(11).toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.outE("authored").has("score", 1)
.limit(5).toList();
Assert.assertEquals(5, edges.size());
edges = graph.traversal().V()
.outE().has("time", "2020-6-18")
.toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V()
.outE().has("time", "2020-6-18")
.limit(1).toList();
Assert.assertEquals(1, edges.size());
edges = graph.traversal().V()
.outE().has("time", "2020-6-0")
.toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V()
.outE().has("time", "2020-6-0")
.limit(1).toList();
Assert.assertEquals(1, edges.size());
// inE
edges = graph.traversal().V()
.inE().has("score", 0)
.toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.inE().has("score", 0)
.limit(11).toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.inE().has("score", 0)
.limit(6).toList();
Assert.assertEquals(6, edges.size());
edges = graph.traversal().V()
.inE().has("score", 1)
.toList();
Assert.assertEquals(12, edges.size());
edges = graph.traversal().V()
.inE().has("score", 1)
.limit(13).toList();
Assert.assertEquals(12, edges.size());
edges = graph.traversal().V()
.inE().has("score", 1)
.limit(7).toList();
Assert.assertEquals(7, edges.size());
edges = graph.traversal().V()
.inE("authored").has("score", 1)
.toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.inE("authored").has("score", 1)
.limit(11).toList();
Assert.assertEquals(10, edges.size());
edges = graph.traversal().V()
.inE("authored").has("score", 1)
.limit(5).toList();
Assert.assertEquals(5, edges.size());
edges = graph.traversal().V()
.inE().has("time", "2020-6-18")
.toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V()
.inE().has("time", "2020-6-18")
.limit(1).toList();
Assert.assertEquals(1, edges.size());
edges = graph.traversal().V()
.inE().has("time", "2020-6-0")
.toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V()
.inE().has("time", "2020-6-0")
.limit(1).toList();
Assert.assertEquals(1, edges.size());
// bothE
edges = graph.traversal().V(java0)
.bothE().has("score", 1)
.toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V(java0)
.bothE().has("score", 1)
.limit(3).toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V(java0)
.bothE().has("score", 1)
.limit(1).toList();
Assert.assertEquals(1, edges.size());
edges = graph.traversal().V(java0)
.bothE().has("time", "2020-6-0")
.toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V(java0)
.bothE().has("time", "2020-6-0")
.limit(3).toList();
Assert.assertEquals(2, edges.size());
edges = graph.traversal().V(java0)
.bothE().has("time", "2020-6-0")
.limit(1).toList();
Assert.assertEquals(1, edges.size());
}