@Test public void testTinkerPopCardinality() { PropertyKey id = mgmt.makePropertyKey("id").cardinality(Cardinality.SINGLE).dataType(Integer.class).make(); PropertyKey name = mgmt.makePropertyKey("name").cardinality(Cardinality.SINGLE).dataType(String.class).make(); PropertyKey names = mgmt.makePropertyKey("names").cardinality(Cardinality.LIST).dataType(String.class).make(); mgmt.buildIndex("byId", Vertex.class).addKey(id).buildCompositeIndex(); finishSchema(); GraphTraversalSource gts; Vertex v; v = graph.addVertex("id", 1); v.property(single, "name", "t1"); graph.addVertex("id", 2, "names", "n1", "names", "n2"); graph.tx().commit(); gts = graph.traversal(); v = gts.V().has("id", 1).next(); v.property(single, "name", "t2"); v = gts.V().has("id", 1).next(); v.property(single, "name", "t3"); assertCount(1, gts.V(v).properties("name")); assertCount(2, gts.V().has("id", 2).properties("names")); assertCount(2, gts.V().hasLabel("vertex")); }
@Test public void testQueryByPrimaryValues() { HugeGraph graph = graph(); init10Vertices(); // Query vertex by primary-values List<Vertex> vertexes = graph.traversal().V() .hasLabel("author").has("id", 1).toList(); Assert.assertEquals(1, vertexes.size()); assertContains(vertexes, T.label, "author", "id", 1, "name", "James Gosling", "age", 62, "lived", "Canadian"); }
final Vertex vertex = DetachedFactory.detach(g.V().has("name", "marko").next(), true); assertTrue(vertex instanceof DetachedVertex); final List<Vertex> vertices = DetachedFactory.detach(g.V().hasLabel("software").fold().next(), true); for (final Vertex v : vertices) { assertTrue(v instanceof DetachedVertex); assertEquals("java", v.value("lang")); final List<List<Vertex>> lists = DetachedFactory.detach(g.V().hasLabel("software").fold().fold().next(), true); for (final Vertex v : lists.get(0)) { assertTrue(v instanceof DetachedVertex); assertEquals("java", v.value("lang")); final Set<List<Vertex>> set = DetachedFactory.detach(g.V().hasLabel("software").fold().toSet(), true); for (final Vertex v : set.iterator().next()) { assertTrue(v instanceof DetachedVertex); assertEquals("java", v.value("lang")); Map<Vertex, List<Edge>> map = DetachedFactory.detach(g.V().hasLabel("software").group().by().by(inE().fold()).next(), true); for (final Map.Entry<Vertex, List<Edge>> entry : map.entrySet()) { assertTrue(entry.getKey() instanceof DetachedVertex); map = DetachedFactory.detach(g.V().hasLabel("software").group("m").by().by(inE().fold()).identity().cap("m").next(), true); for (final Map.Entry<Vertex, List<Edge>> entry : map.entrySet()) { assertTrue(entry.getKey() instanceof DetachedVertex);
@Test public void testQueryEdgesByLabel() { HugeGraph graph = graph(); init18Edges(); List<Edge> edges = graph.traversal().E().hasLabel("created").toList(); Assert.assertEquals(2, edges.size()); edges = graph.traversal().E().hasLabel("authored").toList(); Assert.assertEquals(3, edges.size()); edges = graph.traversal().E().hasLabel("look").toList(); Assert.assertEquals(7, edges.size()); edges = graph.traversal().E().hasLabel("friend").toList(); Assert.assertEquals(4, edges.size()); edges = graph.traversal().E().hasLabel("follow").toList(); Assert.assertEquals(1, edges.size()); edges = graph.traversal().E().hasLabel("know").toList(); Assert.assertEquals(1, edges.size()); }
@SuppressWarnings("SameReturnValue") @Benchmark public long withinWithIn() { this.sqlgGraph.configuration().setProperty("bulk.within.count", this.count); List<Vertex> vertices = this.gt.V().hasLabel("Person").has("uid", P.within(this.smallUidSet)).toList(); assertEquals(this.count, vertices.size()); return 1000000; }
@Test public void canExecuteGraphEHasLabel() { ChronoGraph graph = this.getGraph(); Vertex v1 = graph.addVertex(); Vertex v2 = graph.addVertex(); Vertex v3 = graph.addVertex(); v1.addEdge("forward", v2); v2.addEdge("forward", v3); v3.addEdge("forward", v1); v1.addEdge("backward", v3); v2.addEdge("backward", v2); v3.addEdge("backward", v2); assertEquals(3, Iterators.size(graph.traversal().E().hasLabel("forward"))); assertEquals(3, Iterators.size(graph.traversal().E().hasLabel("backward"))); graph.tx().commit(); assertEquals(3, Iterators.size(graph.traversal().E().hasLabel("forward"))); assertEquals(3, Iterators.size(graph.traversal().E().hasLabel("backward"))); }
@Test(expected = NoSuchElementException.class) @LoadGraphWith(MODERN) public void shouldGetExcludedEdge() throws Exception { final Traversal<Edge, ?> edgeCriterion = __.or( has("weight", 1.0d).hasLabel("knows"), // 8 has("weight", 0.4d).hasLabel("created").outV().has("name", "marko"), // 9 has("weight", 1.0d).hasLabel("created") // 10 ); final GraphTraversalSource sg = g.withStrategies(SubgraphStrategy.build().edges(edgeCriterion).create()); sg.E(sg.E(convertToEdgeId("marko", "knows", "vadas")).next()).next(); }
private void assertRelationsNotRerified(Graph graph) { assertEquals(0, graph.traversal().E().hasLabel(SOURCE).count().next().intValue()); assertEquals(0, graph.traversal().E().hasLabel(TARGET).count().next().intValue()); assertEquals(0, graph.traversal().V().hasLabel(RELATION).count().next().intValue()); }
private void assertNoRelationEdges(Graph graph) { assertEquals(0, graph.traversal().E().hasLabel(RELATION).count().next().intValue()); }
@Test public void testQueryByLabelAndKeyName() { HugeGraph graph = graph(); init10Vertices(); // Query by vertex label and key-name List<Vertex> vertexes = graph.traversal().V().hasLabel("language") .has("dynamic").toList(); Assert.assertEquals(1, vertexes.size()); assertContains(vertexes, T.label, "language", "name", "python", "dynamic", true); }
@Test @LoadGraphWith(LoadGraphWith.GraphData.MODERN) @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldDetachCollections() { final Vertex vertex = ReferenceFactory.detach(g.V().has("name", "marko").next()); assertTrue(vertex instanceof ReferenceVertex); final List<Vertex> vertices = ReferenceFactory.detach(g.V().hasLabel("software").fold().next()); for (final Vertex v : vertices) { assertTrue(v instanceof ReferenceVertex); final List<List<Vertex>> lists = ReferenceFactory.detach(g.V().hasLabel("software").fold().fold().next()); for (final Vertex v : lists.get(0)) { assertTrue(v instanceof ReferenceVertex); final Set<List<Vertex>> set = ReferenceFactory.detach(g.V().hasLabel("software").fold().toSet()); for (final Vertex v : set.iterator().next()) { assertTrue(v instanceof ReferenceVertex); Map<Vertex, List<Edge>> map = ReferenceFactory.detach(g.V().hasLabel("software").group().by().by(inE().fold()).next()); for (final Map.Entry<Vertex, List<Edge>> entry : map.entrySet()) { assertTrue(entry.getKey() instanceof ReferenceVertex); map = ReferenceFactory.detach(g.V().hasLabel("software").group("m").by().by(inE().fold()).identity().cap("m").next()); for (final Map.Entry<Vertex, List<Edge>> entry : map.entrySet()) { assertTrue(entry.getKey() instanceof ReferenceVertex);
@SuppressWarnings("SameReturnValue") @Benchmark public long withinWithJoin() { this.sqlgGraph.configuration().setProperty("bulk.within.count", this.count - 1); List<Vertex> vertices = this.gt.V().hasLabel("Person").has("uid", P.within(this.smallUidSet)).toList(); assertEquals(this.count, vertices.size()); return 1000000; }
@Test public void testTinkerPopCardinality() { PropertyKey id = mgmt.makePropertyKey("id").cardinality(Cardinality.SINGLE).dataType(Integer.class).make(); PropertyKey name = mgmt.makePropertyKey("name").cardinality(Cardinality.SINGLE).dataType(String.class).make(); PropertyKey names = mgmt.makePropertyKey("names").cardinality(Cardinality.LIST).dataType(String.class).make(); mgmt.buildIndex("byId", Vertex.class).addKey(id).buildCompositeIndex(); finishSchema(); GraphTraversalSource gts; Vertex v; v = graph.addVertex("id", 1); v.property(single, "name", "t1"); graph.addVertex("id", 2, "names", "n1", "names", "n2"); graph.tx().commit(); gts = graph.traversal(); v = gts.V().has("id", 1).next(); v.property(single, "name", "t2"); v = gts.V().has("id", 1).next(); v.property(single, "name", "t3"); assertCount(1, gts.V(v).properties("name")); assertCount(2, gts.V().has("id", 2).properties("names")); assertCount(2, gts.V().hasLabel("vertex")); }
private void assertNoDocumentNode(Graph graph) { assertEquals(0, graph.traversal().V().hasLabel(DOCUMENT).count().next().intValue()); assertEquals(0, graph.traversal().E().hasLabel(MENTION_IN).count().next().intValue()); }
@Test @LoadGraphWith(MODERN) public void shouldDumpWholeGraph() throws Exception { if (graphProvider.getGraphComputer(graph).features().supportsResultGraphPersistCombination(GraphComputer.ResultGraph.NEW, GraphComputer.Persist.EDGES)) { final ComputerResult result = graphProvider.getGraphComputer(graph).program(CloneVertexProgram.build().create(graph)).submit().get(); result.graph().traversal().V().forEachRemaining(v -> { assertEquals(2, v.keys().size()); assertTrue(v.keys().contains("name")); assertTrue(v.keys().contains("age") || v.keys().contains("lang")); assertEquals(1, IteratorUtils.count(v.values("name"))); assertEquals(1, IteratorUtils.count(v.values("age", "lang"))); final String name = v.value("name"); if (name.equals("marko")) { }); assertEquals(3.5, (Double) result.graph().traversal().E().values("weight").sum().next(), 0.01); assertEquals(1.5, (Double) result.graph().traversal().E().hasLabel("knows").values("weight").sum().next(), 0.01); assertEquals(2.0, (Double) result.graph().traversal().E().hasLabel("created").values("weight").sum().next(), 0.01); assertEquals(result.memory().getIteration(), 0); assertEquals(result.memory().asMap().size(), 0);