@Test public void testDerivedOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("g[(a)]"); LogicalGraph baseGraph = loader.getLogicalGraphByVariable("g"); LogicalGraph derivedGraph1 = baseGraph.vertexInducedSubgraph(v -> true); LogicalGraph derivedGraph2 = baseGraph.vertexInducedSubgraph(v -> true); loader.appendToDatabaseFromString("expected[(a)]"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(derivedGraph1.overlap(derivedGraph2).equalsByElementIds(expected)); }
.vertexInducedSubgraph((vertex) -> vertex.getPropertyValue("count").getLong() > 10);
@Test public void testVertexInducedSubgraph() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); loader.appendToDatabaseFromString("expected[" + "(databases)<-[ghtd]-(gdbs)-[ghtg1]->(graphs)" + "(graphs)<-[ghtg2]-(gps)-[ghth]->(hadoop)" + "]"); LogicalGraph input = loader.getLogicalGraph(); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); LogicalGraph output = input.vertexInducedSubgraph( v -> v.getLabel().equals("Forum") || v.getLabel().equals("Tag")); collectAndAssertTrue(output.equalsByElementData(expected)); }
.vertexInducedSubgraph(new ByLabel<>(LABEL_PERSON))
@Test public void testDerivedOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("g[(a {x: true, y: true}), (b {x: true, y: false})]"); LogicalGraph baseGraph = loader.getLogicalGraphByVariable("g"); LogicalGraph derivedGraph1 = baseGraph.vertexInducedSubgraph(v -> v.getPropertyValue("x").getBoolean()); LogicalGraph derivedGraph2 = baseGraph.vertexInducedSubgraph(v -> !v.getPropertyValue("y").getBoolean()); loader.appendToDatabaseFromString("expected[(a),(b)]"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(derivedGraph1.combine(derivedGraph2).equalsByElementIds(expected)); }
@Test public void testDerivedOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("g[(a {x: true, y: true}),(b {x:true, y: false})]"); LogicalGraph baseGraph = loader.getLogicalGraphByVariable("g"); LogicalGraph derivedGraph1 = baseGraph.vertexInducedSubgraph(v -> v.getPropertyValue("x").getBoolean()); LogicalGraph derivedGraph2 = baseGraph.vertexInducedSubgraph(v -> !v.getPropertyValue("y").getBoolean()); loader.appendToDatabaseFromString("expected[(a)]"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(derivedGraph1.exclude(derivedGraph2).equalsByElementIds(expected)); }
@Test public void testDerivedNonOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("g[(a {x: true}),(b {x: false})]"); LogicalGraph baseGraph = loader.getLogicalGraphByVariable("g"); LogicalGraph derivedGraph1 = baseGraph.vertexInducedSubgraph(v -> v.getPropertyValue("x").getBoolean()); LogicalGraph derivedGraph2 = baseGraph.vertexInducedSubgraph(v -> !v.getPropertyValue("x").getBoolean()); loader.appendToDatabaseFromString("expected[]"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(derivedGraph1.overlap(derivedGraph2).equalsByElementIds(expected)); }
@Test public void testDerivedNonOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("g[(a {x: true}), (b {x: false})]"); LogicalGraph baseGraph = loader.getLogicalGraphByVariable("g"); LogicalGraph derivedGraph1 = baseGraph.vertexInducedSubgraph(v -> v.getPropertyValue("x").getBoolean()); LogicalGraph derivedGraph2 = baseGraph.vertexInducedSubgraph(v -> !v.getPropertyValue("x").getBoolean()); loader.appendToDatabaseFromString("expected[(a),(b)]"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(derivedGraph1.combine(derivedGraph2).equalsByElementIds(expected)); }
@Test public void testDerivedNonOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString("g[(a {x: true}),(b {x: false})]"); LogicalGraph baseGraph = loader.getLogicalGraphByVariable("g"); LogicalGraph derivedGraph1 = baseGraph.vertexInducedSubgraph(v -> v.getPropertyValue("x").getBoolean()); LogicalGraph derivedGraph2 = baseGraph.vertexInducedSubgraph(v -> !v.getPropertyValue("x").getBoolean()); loader.appendToDatabaseFromString("expected[(a)]"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(derivedGraph1.exclude(derivedGraph2).equalsByElementIds(expected)); }
graph = graph.vertexInducedSubgraph(new LabelIsIn<>( "person", "tag", "country", "city", "post"));
.vertexInducedSubgraph(new TransactionalData<>());
.vertexInducedSubgraph(new TransactionalData<>());