public void testQueryEdgesWithLimitOnMultiLevelAndFilterProp()

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());
    }