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