Search in sources :

Example 1 with Tree

use of org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree in project sqlg by pietermartin.

the class TestTreeStep method g_VX1X_out_out_tree_byXnameX.

@Test
public void g_VX1X_out_out_tree_byXnameX() throws IOException {
    Graph graph = this.sqlgGraph;
    loadModern(this.sqlgGraph);
    assertModernGraph(graph, true, false);
    GraphTraversalSource g = this.sqlgGraph.traversal();
    final List<DefaultGraphTraversal<Vertex, Tree>> traversals = Arrays.asList((DefaultGraphTraversal) g.V(convertToVertexId("marko")).out().out().tree().by("name"), (DefaultGraphTraversal) g.V(convertToVertexId("marko")).out().out().tree("a").by("name").both().both().cap("a"));
    traversals.forEach(traversal -> {
        printTraversalForm(traversal);
        final Tree tree = traversal.next();
        Assert.assertFalse(traversal.hasNext());
        Assert.assertEquals(1, tree.size());
        Assert.assertTrue(tree.containsKey("marko"));
        Assert.assertEquals(1, ((Map) tree.get("marko")).size());
        Assert.assertTrue(((Map) tree.get("marko")).containsKey("josh"));
        Assert.assertTrue(((Map) ((Map) tree.get("marko")).get("josh")).containsKey("lop"));
        Assert.assertTrue(((Map) ((Map) tree.get("marko")).get("josh")).containsKey("ripple"));
    });
}
Also used : GraphTraversalSource(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource) DefaultGraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal) Graph(org.apache.tinkerpop.gremlin.structure.Graph) Tree(org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree) Map(java.util.Map) BaseTest(org.umlg.sqlg.test.BaseTest) Test(org.junit.Test)

Example 2 with Tree

use of org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree in project sqlg by pietermartin.

the class TestTreeStep method testTree.

@Test
public void testTree() {
    Vertex a1 = this.sqlgGraph.addVertex(T.label, "A", "name", "a1");
    Vertex b1 = this.sqlgGraph.addVertex(T.label, "B", "name", "b1");
    Vertex b2 = this.sqlgGraph.addVertex(T.label, "B", "name", "b2");
    Vertex b3 = this.sqlgGraph.addVertex(T.label, "B", "name", "b3");
    a1.addEdge("ab", b1);
    a1.addEdge("ab", b2);
    a1.addEdge("ab", b3);
    Vertex c1 = this.sqlgGraph.addVertex(T.label, "C", "name", "c1");
    Vertex c2 = this.sqlgGraph.addVertex(T.label, "C", "name", "c2");
    Vertex c3 = this.sqlgGraph.addVertex(T.label, "C", "name", "c3");
    b1.addEdge("bc", c1);
    b1.addEdge("bc", c2);
    b1.addEdge("bc", c3);
    this.sqlgGraph.tx().commit();
    DefaultGraphTraversal<Vertex, Tree> traversal = (DefaultGraphTraversal<Vertex, Tree>) this.sqlgGraph.traversal().V().hasLabel("A").out().out().tree();
    Assert.assertEquals(5, traversal.getSteps().size());
    Tree tree = traversal.next();
    Assert.assertEquals(2, traversal.getSteps().size());
    Assert.assertEquals(1, tree.size());
    Assert.assertTrue(tree.containsKey(a1));
    Tree tree2 = (Tree) tree.get(a1);
    Assert.assertEquals(1, tree2.size());
    Assert.assertTrue(tree2.containsKey(b1));
    Tree tree3 = (Tree) tree2.get(b1);
    Assert.assertEquals(3, tree3.size());
    Assert.assertTrue(tree3.containsKey(c1));
    Assert.assertTrue(tree3.containsKey(c1));
    Assert.assertTrue(tree3.containsKey(c1));
// left join todo
// GraphTraversal gt = this.sqlgGraph.traversal().V().hasLabel("A").emit().repeat(__.out("ab", "bc")).times(2).tree();
// System.out.println(gt.toString());
// System.out.println(gt.next());
}
Also used : Vertex(org.apache.tinkerpop.gremlin.structure.Vertex) DefaultGraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal) Tree(org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree) BaseTest(org.umlg.sqlg.test.BaseTest) Test(org.junit.Test)

Example 3 with Tree

use of org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree in project sqlg by pietermartin.

the class TestTraversals method g_V_out_out_treeXaX_capXaX.

@Test
public void g_V_out_out_treeXaX_capXaX() {
    loadModern();
    Traversal t1 = (Traversal) gt.V().out().out().tree();
    Traversal t2 = (Traversal) gt.V().out().out().tree("a").cap("a");
    List<Traversal<Vertex, Tree>> traversals = Arrays.asList(t1, t2);
    traversals.forEach(traversal -> {
        printTraversalForm(traversal);
        final Tree tree = traversal.next();
        assertFalse(traversal.hasNext());
        assertEquals(1, tree.size());
        Assert.assertTrue(tree.containsKey(convertToVertex(this.sqlgGraph, "marko")));
        assertEquals(1, ((Map) tree.get(convertToVertex(this.sqlgGraph, "marko"))).size());
        Assert.assertTrue(((Map) tree.get(convertToVertex(this.sqlgGraph, "marko"))).containsKey(convertToVertex(this.sqlgGraph, "josh")));
        Assert.assertTrue(((Map) ((Map) tree.get(convertToVertex(this.sqlgGraph, "marko"))).get(convertToVertex(this.sqlgGraph, "josh"))).containsKey(convertToVertex(this.sqlgGraph, "lop")));
        Assert.assertTrue(((Map) ((Map) tree.get(convertToVertex(this.sqlgGraph, "marko"))).get(convertToVertex(this.sqlgGraph, "josh"))).containsKey(convertToVertex(this.sqlgGraph, "ripple")));
    });
}
Also used : Traversal(org.apache.tinkerpop.gremlin.process.traversal.Traversal) Tree(org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree) Map(java.util.Map) BaseTest(org.umlg.sqlg.test.BaseTest) Test(org.junit.Test)

Example 4 with Tree

use of org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree in project sqlg by pietermartin.

the class TestRepeatStepGraphOut method testRepeatStepPerformance.

@Test
public void testRepeatStepPerformance() throws InterruptedException {
    Vertex group = this.sqlgGraph.addVertex(T.label, "Group", "name", "MTN");
    Vertex network = this.sqlgGraph.addVertex(T.label, "Network", "name", "SouthAfrica");
    Vertex ericssonGsm = this.sqlgGraph.addVertex(T.label, "NetworkSoftwareVersion", "name", "EricssonGsm");
    Vertex ericssonUmts = this.sqlgGraph.addVertex(T.label, "NetworkSoftwareVersion", "name", "EricssonUmts");
    Vertex ericssonLte = this.sqlgGraph.addVertex(T.label, "NetworkSoftwareVersion", "name", "EricssonLte");
    Vertex huaweiGsm = this.sqlgGraph.addVertex(T.label, "NetworkSoftwareVersion", "name", "HuaweiGsm");
    Vertex huaweiUmts = this.sqlgGraph.addVertex(T.label, "NetworkSoftwareVersion", "name", "HuaweiUmts");
    Vertex huaweiLte = this.sqlgGraph.addVertex(T.label, "NetworkSoftwareVersion", "name", "HuaweiLte");
    group.addEdge("group_network", network);
    network.addEdge("network_networkSoftwareVersion", ericssonGsm);
    network.addEdge("network_networkSoftwareVersion", ericssonUmts);
    network.addEdge("network_networkSoftwareVersion", ericssonLte);
    network.addEdge("network_networkSoftwareVersion", huaweiGsm);
    network.addEdge("network_networkSoftwareVersion", huaweiUmts);
    network.addEdge("network_networkSoftwareVersion", huaweiLte);
    Vertex ericssonGsmNetworkNodeGroup = this.sqlgGraph.addVertex(T.label, "NetworkNodeGroup", "name", "EricssonGsmNetworkNodeGroup");
    Vertex ericssonUmtsNetworkNodeGroup = this.sqlgGraph.addVertex(T.label, "NetworkNodeGroup", "name", "EricssonUmtsNetworkNodeGroup");
    Vertex ericssonLteNetworkNodeGroup = this.sqlgGraph.addVertex(T.label, "NetworkNodeGroup", "name", "EricssonLteNetworkNodeGroup");
    Vertex huaweiGsmNetworkNodeGroup = this.sqlgGraph.addVertex(T.label, "NetworkNodeGroup", "name", "HuaweiGsmNetworkNodeGroup");
    Vertex huaweiUmtsNetworkNodeGroup = this.sqlgGraph.addVertex(T.label, "NetworkNodeGroup", "name", "HuaweiUmtsNetworkNodeGroup");
    Vertex huaweiLteNetworkNodeGroup = this.sqlgGraph.addVertex(T.label, "NetworkNodeGroup", "name", "HuaweiLteNetworkNodeGroup");
    ericssonGsm.addEdge("networkSoftwareVersion_networkNodeGroup", ericssonGsmNetworkNodeGroup);
    ericssonUmts.addEdge("networkSoftwareVersion_networkNodeGroup", ericssonUmtsNetworkNodeGroup);
    ericssonLte.addEdge("networkSoftwareVersion_networkNodeGroup", ericssonLteNetworkNodeGroup);
    huaweiGsm.addEdge("networkSoftwareVersion_networkNodeGroup", huaweiGsmNetworkNodeGroup);
    huaweiUmts.addEdge("networkSoftwareVersion_networkNodeGroup", huaweiUmtsNetworkNodeGroup);
    huaweiLte.addEdge("networkSoftwareVersion_networkNodeGroup", huaweiLteNetworkNodeGroup);
    for (int i = 0; i < 1000; i++) {
        Vertex ericssonGsmNode = this.sqlgGraph.addVertex(T.label, "NetworkNode", "name", "ericssonGsm" + i);
        ericssonGsmNetworkNodeGroup.addEdge("networkNodeGroup_networkNode", ericssonGsmNode);
        Vertex ericssonUmtsNode = this.sqlgGraph.addVertex(T.label, "NetworkNode", "name", "ericssonUmts" + i);
        ericssonUmtsNetworkNodeGroup.addEdge("networkNodeGroup_networkNode", ericssonUmtsNode);
        Vertex ericssonLteNode = this.sqlgGraph.addVertex(T.label, "NetworkNode", "name", "ericssonLte" + i);
        ericssonLteNetworkNodeGroup.addEdge("networkNodeGroup_networkNode", ericssonLteNode);
        Vertex huaweiGsmNode = this.sqlgGraph.addVertex(T.label, "NetworkNode", "name", "huaweiGsm" + i);
        huaweiGsmNetworkNodeGroup.addEdge("networkNodeGroup_networkNode", huaweiGsmNode);
        Vertex huaweiUmtsNode = this.sqlgGraph.addVertex(T.label, "NetworkNode", "name", "huaweiUmts" + i);
        huaweiUmtsNetworkNodeGroup.addEdge("networkNodeGroup_networkNode", huaweiUmtsNode);
        Vertex huaweiLteNode = this.sqlgGraph.addVertex(T.label, "NetworkNode", "name", "huaweiLte" + i);
        huaweiLteNetworkNodeGroup.addEdge("networkNodeGroup_networkNode", huaweiLteNode);
    }
    this.sqlgGraph.tx().commit();
    // Thread.sleep(20000);
    System.out.println("go");
    for (int i = 0; i < 1; i++) {
        Tree tree = this.sqlgGraph.traversal().V().hasLabel("Group").emit().repeat(__.out("group_network", "network_networkSoftwareVersion", "networkSoftwareVersion_networkNodeGroup", "networkNodeGroup_networkNode")).times(4).tree().next();
    }
    StopWatch stopWatch1 = new StopWatch();
    stopWatch1.start();
    Tree tree = this.sqlgGraph.traversal().V().hasLabel("Group").emit().repeat(__.out("group_network", "network_networkSoftwareVersion", "networkSoftwareVersion_networkNodeGroup", "networkNodeGroup_networkNode")).times(4).tree().next();
    stopWatch1.stop();
    System.out.println(stopWatch1.toString());
}
Also used : Vertex(org.apache.tinkerpop.gremlin.structure.Vertex) Tree(org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree) StopWatch(org.apache.commons.lang3.time.StopWatch) BaseTest(org.umlg.sqlg.test.BaseTest) Test(org.junit.Test)

Example 5 with Tree

use of org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree in project sqlg by pietermartin.

the class TestTreeStep method testTreeWithBy.

@Test
public void testTreeWithBy() {
    Vertex a1 = this.sqlgGraph.addVertex(T.label, "A", "name", "a1");
    Vertex b1 = this.sqlgGraph.addVertex(T.label, "B", "name", "b1");
    Vertex b2 = this.sqlgGraph.addVertex(T.label, "B", "name", "b2");
    Vertex b3 = this.sqlgGraph.addVertex(T.label, "B", "name", "b3");
    a1.addEdge("ab", b1);
    a1.addEdge("ab", b2);
    a1.addEdge("ab", b3);
    Vertex c1 = this.sqlgGraph.addVertex(T.label, "C", "name", "c1");
    Vertex c2 = this.sqlgGraph.addVertex(T.label, "C", "name", "c2");
    Vertex c3 = this.sqlgGraph.addVertex(T.label, "C", "name", "c3");
    b1.addEdge("bc", c1);
    b1.addEdge("bc", c2);
    b1.addEdge("bc", c3);
    DefaultGraphTraversal<Vertex, Tree> traversal = (DefaultGraphTraversal<Vertex, Tree>) this.sqlgGraph.traversal().V().hasLabel("A").out().out().tree().by("name");
    Assert.assertEquals(5, traversal.getSteps().size());
    Tree tree = traversal.next();
    Assert.assertEquals(2, traversal.getSteps().size());
    Assert.assertEquals(1, tree.size());
    Assert.assertTrue(tree.containsKey("a1"));
    Tree tree2 = (Tree) tree.get("a1");
    Assert.assertEquals(1, tree2.size());
    Assert.assertTrue(tree2.containsKey("b1"));
    Tree tree3 = (Tree) tree2.get("b1");
    Assert.assertEquals(3, tree3.size());
    Assert.assertTrue(tree3.containsKey("c1"));
    Assert.assertTrue(tree3.containsKey("c1"));
    Assert.assertTrue(tree3.containsKey("c1"));
}
Also used : Vertex(org.apache.tinkerpop.gremlin.structure.Vertex) DefaultGraphTraversal(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal) Tree(org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree) BaseTest(org.umlg.sqlg.test.BaseTest) Test(org.junit.Test)

Aggregations

Tree (org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree)5 Test (org.junit.Test)5 BaseTest (org.umlg.sqlg.test.BaseTest)5 DefaultGraphTraversal (org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal)3 Vertex (org.apache.tinkerpop.gremlin.structure.Vertex)3 Map (java.util.Map)2 StopWatch (org.apache.commons.lang3.time.StopWatch)1 Traversal (org.apache.tinkerpop.gremlin.process.traversal.Traversal)1 GraphTraversalSource (org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource)1 Graph (org.apache.tinkerpop.gremlin.structure.Graph)1