Coverage Summary for Class: TestUnion (org.umlg.sqlg.test.union)

Class Class, % Method, % Branch, % Line, %
TestUnion 0% (0/1) 0% (0/3) 0% (0/4) 0% (0/19)


 package org.umlg.sqlg.test.union;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Test;
 import org.umlg.sqlg.test.BaseTest;
 
 import java.util.List;
 
 /**
  * Date: 2016/05/30
  * Time: 9:01 PM
  */
 @SuppressWarnings("unchecked")
 public class TestUnion extends BaseTest {
 
 // @Test
 // public void g_V_hasXperson_name_markoX_path_asXaX_unionXidentity_identityX_selectXaX_unfold() {
 // loadModern();
 // DefaultGraphTraversal<Vertex, Vertex> graphTraversal = (DefaultGraphTraversal<Vertex, Vertex>) this.sqlgGraph.traversal().V().has("person", "name", "marko")
 // .path().as("a")
 // .union(
 // __.identity(),
 // __.identity()
 // ).select("a")
 // .<Vertex>unfold();
 // printTraversalForm(graphTraversal);
 // List<Vertex> result = graphTraversal.toList();
 // for (Vertex vertex : result) {
 // System.out.println(vertex);
 // }
 // }
 
  @Test
  public void g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX() {
  loadModern();
  DefaultGraphTraversal<Vertex, Path> graphTraversal = (DefaultGraphTraversal) this.sqlgGraph.traversal().union(
  __.V().out().out(),
  __.V().hasLabel("software")
  ).path().by("name");
  printTraversalForm(graphTraversal);
  List<Path> result = graphTraversal.toList();
  for (Path path : result) {
  System.out.println(path);
  }
  }
 
  // @Test
  public void g_unionXV_out_out_V_hasLabelXsoftwareXX_path() {
  loadModern();
  DefaultGraphTraversal<Vertex, Path> graphTraversal = (DefaultGraphTraversal<Vertex, Path>) this.sqlgGraph.traversal().union(
  __.V().out().out(),
  __.V().hasLabel("software")
  ).path();
 
 
  printTraversalForm(graphTraversal);
  List<Path> result = graphTraversal.toList();
  for (Path path : result) {
  System.out.println(path);
  }
 
 // DefaultGraphTraversal<Path, Path> graphTraversal = (DefaultGraphTraversal<Path, Path>) this.sqlgGraph.traversal().union(
 // __.V().out().out().path(),
 // __.V().hasLabel("software").path()
 // );
 // printTraversalForm(graphTraversal);
 // List<Path> result = graphTraversal.toList();
 // for (Path path : result) {
 // System.out.println(path);
 // }
  }
 
 // @Test
 // public void g_V_hasXperson_name_aliceX_propertyXsingle_age_unionXage_constantX1XX_sumX() {
 //// this.sqlgGraph.addVertex(T.label, "person", "name", "alice", "age", 50);
 // this.sqlgGraph.addVertex(T.label, "person", "name", "alice", "age", 50L);
 // this.sqlgGraph.tx().commit();
 //
 // List<Vertex> vertices = this.sqlgGraph.traversal().V().has("person","name","alice")
 // .property("age", __.union(__.values("age"), __.constant(1)).sum())
 // .toList();
 // this.sqlgGraph.tx().commit();
 // Assert.assertFalse(this.sqlgGraph.traversal().V().has("person","age",50L).hasNext());
 // Assert.assertEquals(1L, this.sqlgGraph.traversal().V().has("person","age",51L).count().next(), 0);
 // }
 //
 // @Test
 // public void g_unionXconstantX1X_constantX2X_constantX3XX() {
 // loadModern();
 // GraphTraversalSource g = sqlgGraph.traversal();
 // DefaultGraphTraversal<String, String> graphTraversal = (DefaultGraphTraversal<String, String>) g.union(
 // __.constant("d[1].i"),
 // __.constant("d[2].i"),
 // __.constant("d[3].i")
 // );
 // printTraversalForm(graphTraversal);
 // List<String> result = graphTraversal.toList();
 // Assert.assertTrue(result.contains("d[1].i"));
 // Assert.assertTrue(result.contains("d[2].i"));
 // Assert.assertTrue(result.contains("d[3].i"));
 // }
 //
 // @Test
 // public void g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount() {
 // loadModern();
 // final Traversal<Vertex, Map<String, Long>> traversal = (Traversal) this.sqlgGraph.traversal().V().union(
 // __.repeat(__.union(
 // __.out("created"),
 // __.in("created"))).times(2),
 // __.repeat(__.union(
 // __.in("created"),
 // __.out("created"))).times(2))
 // .label().groupCount();
 // final Map<String, Long> groupCount = traversal.next();
 // Assert.assertFalse(traversal.hasNext());
 // Assert.assertEquals(2, groupCount.size());
 // Assert.assertEquals(12L, groupCount.get("software").longValue());
 // Assert.assertEquals(20L, groupCount.get("person").longValue());
 // }
 //
 // /**
 // * https://github.com/pietermartin/sqlg/issues/416
 // */
 // @Test
 // public void testAliasesWithinUnion() {
 // Vertex a = this.sqlgGraph.addVertex(T.label, "A", "name", "A");
 // Vertex b = this.sqlgGraph.addVertex(T.label, "B", "name", "B");
 //
 // a.addEdge("edge", b);
 //
 // // First, confirm that a simple traversal using an alias works properly. This works as
 // // expected (the failure is below with the union where the exact traversal is used inside the union).
 // List<Vertex> noUnionItems = this.sqlgGraph.traversal()
 // .V()
 // .hasLabel("A")
 // .as("alias1")
 // .out()
 // .<Vertex>select("alias1")
 // .toList();
 //
 // Assert.assertEquals(1, noUnionItems.size());
 // Assert.assertEquals(a, noUnionItems.get(0));
 //
 // // This one doesn't work even though the exact same traversal is used inside the union. Debugging
 // // the code shows that it cannot find the "alias1" label in the SelectOneStep (in the map method).
 // List<Vertex> unionItems = this.sqlgGraph.traversal()
 // .inject("ignore") // Normally an inject would be used here, but see #415
 // .<Vertex>union(
 // __.V().hasLabel("A").as("alias1").out().select("alias1")
 // )
 // .toList();
 //
 // // This fails because unionItems contains 0 results.
 // Assert.assertEquals(1, unionItems.size());
 // }
 //
 // @Test
 // public void testdkarthikeyan88_bug359() {
 // Graph g = this.sqlgGraph;
 // Vertex cluster = g.addVertex(T.label, "Cluster", "name", "Test Cluster");
 // Vertex service = g.addVertex(T.label, "Service", "name", "Test Service");
 // Vertex database = g.addVertex(T.label, "Database", "name", "Test DB");
 // Vertex schema1 = g.addVertex(T.label, "Schema", "name", "Test Schema1");
 // Vertex schema2 = g.addVertex(T.label, "Schema", "name", "Test Schema2");
 // Vertex table1 = g.addVertex(T.label, "Table", "name", "Table1");
 // Vertex table2 = g.addVertex(T.label, "Table", "name", "Table2");
 // Vertex table3 = g.addVertex(T.label, "Table", "name", "Table3");
 // Vertex table4 = g.addVertex(T.label, "Table", "name", "Table4");
 // Vertex column1 = g.addVertex(T.label, "Column", "name", "Column1");
 // Vertex column2 = g.addVertex(T.label, "Column", "name", "Column2");
 // Vertex column3 = g.addVertex(T.label, "Column", "name", "Column3");
 // Vertex column4 = g.addVertex(T.label, "Column", "name", "Column4");
 // Vertex column5 = g.addVertex(T.label, "Column", "name", "Column5");
 // Vertex column6 = g.addVertex(T.label, "Column", "name", "Column6");
 // Vertex column7 = g.addVertex(T.label, "Column", "name", "Column7");
 // Vertex column8 = g.addVertex(T.label, "Column", "name", "Column8");
 //
 // cluster.addEdge("has_Service", service);
 // service.addEdge("has_Database", database);
 // database.addEdge("has_Schema", schema1);
 // database.addEdge("has_Schema", schema2);
 // schema1.addEdge("has_Table", table1);
 // schema1.addEdge("has_Table", table2);
 // schema2.addEdge("has_Table", table3);
 // schema2.addEdge("has_Table", table4);
 // table1.addEdge("has_Column", column1);
 // table1.addEdge("has_Column", column2);
 // table2.addEdge("has_Column", column3);
 // table2.addEdge("has_Column", column4);
 // table3.addEdge("has_Column", column5);
 // table3.addEdge("has_Column", column6);
 // table4.addEdge("has_Column", column7);
 // table4.addEdge("has_Column", column8);
 //
 // g.tx().commit();
 //
 //// String expected = "" +
 //// "{" +
 //// " Test Cluster={" +
 //// " Test Service={" +
 //// " Test DB={" +
 //// " Test Schema1={" +
 //// " Table1={" +
 //// " Column1={}, Column2={}" +
 //// " }" +
 //// " }, " +
 //// " Test Schema2={" +
 //// " Table3={" +
 //// " Column5={}, Column6={}" +
 //// " }" +
 //// " }" +
 //// " }" +
 //// " }" +
 //// " }" +
 //// "}";
 //
 // GraphTraversal<Vertex, Tree> traversal = g.traversal().V()
 // .hasLabel("public.Cluster")
 // .has("name", "Test Cluster")
 // .out("has_Service").has("name", "Test Service")
 // .out("has_Database").has("name", "Test DB")
 // .union(
 // __.out("has_Schema").has("name", P.eq("Test Schema1")).out("has_Table").has("name", P.without("Table2")),
 // __.out("has_Schema").has("name", P.eq("Test Schema1")).out("has_Table").has("name", P.within("Table1")),
 // __.out("has_Schema").has("name", P.eq("Test Schema2")).out("has_Table").has("name", P.neq("Table4")))
 // .out("has_Column")
 // .range(0, 100).tree();
 //
 // Tree<Vertex> tree = traversal.next();
 //
 // List<Vertex> clusters = tree.getObjectsAtDepth(1);
 // Assert.assertEquals(1, clusters.size());
 // List<Vertex> services = tree.getObjectsAtDepth(2);
 // Assert.assertEquals(1, services.size());
 // List<Vertex> databases = tree.getObjectsAtDepth(3);
 // Assert.assertEquals(1, databases.size());
 // List<Vertex> schemas = tree.getObjectsAtDepth(4);
 // Assert.assertEquals(2, schemas.size());
 // List<Vertex> tables = tree.getObjectsAtDepth(5);
 // Assert.assertEquals(2, tables.size());
 // List<Vertex> columns = tree.getObjectsAtDepth(6);
 // Assert.assertEquals(4, columns.size());
 // columns = tree.getLeafObjects();
 // Assert.assertEquals(4, columns.size());
 //
 // Assert.assertTrue(tree.containsKey(cluster));
 // Assert.assertTrue(tree.get(cluster).containsKey(service));
 // Assert.assertTrue(tree.get(cluster).get(service).containsKey(database));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).containsKey(schema1));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).get(schema1).containsKey(table1));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).get(schema1).get(table1).containsKey(column1));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).get(schema1).get(table1).containsKey(column2));
 //
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).containsKey(schema2));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).get(schema2).containsKey(table3));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).get(schema2).get(table3).containsKey(column5));
 // Assert.assertTrue(tree.get(cluster).get(service).get(database).get(schema2).get(table3).containsKey(column6));
 // }
 //
 // @Test
 // public void testUnionHasPath() {
 // Vertex a1 = this.sqlgGraph.addVertex(T.label, "A", "name", "A1");
 // Vertex a2 = this.sqlgGraph.addVertex(T.label, "A", "name", "A2");
 // Vertex a3 = this.sqlgGraph.addVertex(T.label, "A", "name", "A3");
 // Vertex a4 = this.sqlgGraph.addVertex(T.label, "A", "name", "A4");
 // 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");
 // 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");
 // a1.addEdge("toB", b1);
 // a1.addEdge("toB", b2);
 // a1.addEdge("toB", b3);
 // b1.addEdge("toC", c1);
 // b2.addEdge("toC", c2);
 // b3.addEdge("toC", c3);
 //
 // GraphTraversal<Vertex, Path> traversal = this.sqlgGraph.traversal().V().has("A", "name", "A1")
 // .union(
 // __.out("toB").has("name", P.eq("B1")).out("toC"),
 // __.out("toB").has("name", P.eq("B2")).out("toC"))
 // .path();
 // printTraversalForm(traversal);
 //
 // Set<Object> objs = new HashSet<>();
 // while (traversal.hasNext()) {
 // Path p = traversal.next();
 // Assert.assertEquals(3, p.size());
 // Object root0 = p.get(0);
 // Assert.assertEquals(a1, root0);
 // Object child0 = p.get(1);
 // Assert.assertEquals("B", ((Vertex) child0).label());
 // Object child1 = p.get(2);
 // Assert.assertEquals("C", ((Vertex) child1).label());
 // objs.add(child0);
 // objs.add(child1);
 // }
 // Assert.assertEquals(4, objs.size());
 // Assert.assertTrue(objs.contains(b1));
 // Assert.assertTrue(objs.contains(b2));
 // Assert.assertTrue(objs.contains(c1));
 // Assert.assertTrue(objs.contains(c2));
 //
 // traversal = this.sqlgGraph.traversal().V().hasLabel("A")
 // .union(
 // __.optional(__.out("toB").has("name", P.eq("B1")).optional(__.out("toC"))),
 // __.optional(__.out("toB").has("name", P.eq("B2")).optional(__.out("toC"))))
 // .path();
 // printTraversalForm(traversal);
 // List<Path> paths = traversal.toList();
 // Assert.assertEquals(8, paths.size());
 // Assert.assertEquals(2, paths.stream().filter(p -> p.size() == 3).count());
 // }
 //
 // @Test
 // public void testUnionAsPerUMLG() {
 // Vertex a1 = this.sqlgGraph.addVertex(T.label, "A");
 // Vertex b1 = this.sqlgGraph.addVertex(T.label, "B");
 // Vertex b2 = this.sqlgGraph.addVertex(T.label, "B");
 // Vertex bb1 = this.sqlgGraph.addVertex(T.label, "BB");
 // Vertex bb2 = this.sqlgGraph.addVertex(T.label, "BB");
 // a1.addEdge("ab", b1);
 // a1.addEdge("ab", b2);
 // bb1.addEdge("ab", a1);
 // bb2.addEdge("ab", a1);
 // this.sqlgGraph.tx().commit();
 // List<Vertex> vertices = this.sqlgGraph.traversal().V(a1).in("ab").toList();
 // Assert.assertEquals(2, vertices.size());
 // vertices = this.sqlgGraph.traversal().V(a1).union(__.optional(__.out("ab")), __.optional(__.in("ab"))).toList();
 // Assert.assertEquals(4, vertices.size());
 // vertices = this.sqlgGraph.traversal().V(a1).union(__.out("ab"), __.in("ab")).toList();
 // Assert.assertEquals(4, vertices.size());
 // vertices = this.sqlgGraph.traversal().V(a1).union(__.out("ab"), __.in("ab")).toList();
 // Assert.assertEquals(4, vertices.size());
 // }
 //
 // @Test
 // public void testUnionFailure() {
 // loadModern();
 // Traversal<Vertex, Map<String, Long>> traversal = this.sqlgGraph.traversal().V().union(
 // __.repeat(__.union(
 // __.out("created"),
 // __.in("created"))).times(2),
 // __.repeat(__.union(
 // __.in("created"),
 // __.out("created"))).times(2))
 // .label().groupCount();
 // printTraversalForm(traversal);
 // final Map<String, Long> groupCount = traversal.next();
 // Assert.assertFalse(traversal.hasNext());
 // Assert.assertEquals(12l, groupCount.get("software").longValue());
 // Assert.assertEquals(20l, groupCount.get("person").longValue());
 // Assert.assertEquals(2, groupCount.size());
 // }
 //
 // @Test
 // public void g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX() {
 // loadModern();
 // Object marko = convertToVertexId("marko");
 // Object vadas = convertToVertexId("vadas");
 // final Traversal<Vertex, Number> traversal = this.sqlgGraph.traversal().V(marko, vadas)
 // .union(
 // __.outE().count(),
 // __.inE().count(),
 // (Traversal) __.outE().values("weight").sum()
 // );
 // printTraversalForm(traversal);
 // checkResults(Arrays.asList(3l, 1.9d, 1l), traversal);
 // }
 //
 // @Test
 // public void g_V_outXcreatedX_unionXasXprojectX_inXcreatedX_hasXname_markoX_selectXprojectX__asXprojectX_inXcreatedX_inXknowsX_hasXname_markoX_selectXprojectXX_groupCount_byXnameX() {
 // loadModern();
 // List<Vertex> vertices = this.sqlgGraph.traversal().V().out("created")
 // .<Vertex>union(
 // __.as("project").in("created").has("name", "marko").select("project"),
 // __.as("project").in("created").in("knows").has("name", "marko").select("project")
 // ).toList();
 // Assert.assertEquals(7, vertices.size());
 // Assert.assertEquals(6, vertices.stream().filter(v -> v.value("name").equals("lop")).count());
 // Assert.assertEquals(1, vertices.stream().filter(v -> v.value("name").equals("ripple")).count());
 //
 // Traversal<Vertex, Map<String, Long>> traversal = (Traversal) this.sqlgGraph.traversal().V().out("created")
 // .union(
 // __.as("project").in("created").has("name", "marko").select("project"),
 // __.as("project").in("created").in("knows").has("name", "marko").select("project")
 // ).groupCount().by("name");
 //
 // printTraversalForm(traversal);
 // Assert.assertTrue(traversal.hasNext());
 // final Map<String, Long> map = traversal.next();
 // Assert.assertFalse(traversal.hasNext());
 // Assert.assertEquals(2, map.size());
 // Assert.assertEquals(1l, map.get("ripple").longValue());
 // Assert.assertEquals(6l, map.get("lop").longValue());
 // }
 
 }