@Test public void testVertexOnlyOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString( "g1[(a)-[e1]->(b)]" + "g2[(a)-[e2]->(b)]" + "expected[(a)(b)]"); LogicalGraph g1 = loader.getLogicalGraphByVariable("g1"); LogicalGraph g2 = loader.getLogicalGraphByVariable("g2"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(g1.overlap(g2).equalsByElementIds(expected)); }
@Test public void testGraphHeadOnlyTransformation() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString(testGraphString); LogicalGraph original = loader.getLogicalGraphByVariable("g0"); LogicalGraph expected = loader.getLogicalGraphByVariable("g02"); LogicalGraph result = original.transformGraphHead(TransformationTest::transformGraphHead); collectAndAssertTrue(result.equalsByData(expected)); }
@Test public void testEdgeOnlyTransformation() throws Exception { FlinkAsciiGraphLoader loader = getLoaderFromString(testGraphString); LogicalGraph original = loader.getLogicalGraphByVariable("g0"); LogicalGraph expected = loader.getLogicalGraphByVariable("g04"); LogicalGraph result = original.transformEdges(TransformationTest::transformEdge); collectAndAssertTrue(result.equalsByData(expected)); }
@Test public void testFromGraphsMethod() throws Exception { LogicalGraph graph1 = loader.getLogicalGraphByVariable("g1"); LogicalGraph graph2 = loader.getLogicalGraphByVariable("g2"); GraphCollection expected = loader.getGraphCollectionByVariables("g1", "g2"); GraphCollection result = factory.fromGraphs(graph1, graph2); collectAndAssertTrue(result.equalsByGraphElementData(expected)); } }
@Test public void testSameGraph() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); loader.appendToDatabaseFromString("expected[]"); LogicalGraph g0 = loader.getLogicalGraphByVariable("g0"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); assertTrue("exclusion of same graph failed", expected.equalsByElementIds(g0.exclude(g0)).collect().get(0)); }
@Test public void testNonOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); loader.appendToDatabaseFromString("expected[]"); LogicalGraph g0 = loader.getLogicalGraphByVariable("g0"); LogicalGraph g1 = loader.getLogicalGraphByVariable("g1"); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); assertTrue("overlap non overlapping graphs failed", expected.equalsByElementIds(g0.overlap(g1)).collect().get(0)); assertTrue("overlap switched non overlapping graphs failed", expected.equalsByElementIds(g1.overlap(g0)).collect().get(0)); }
@Test public void testNonOverlappingGraphs() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); LogicalGraph g0 = loader.getLogicalGraphByVariable("g0"); LogicalGraph g1 = loader.getLogicalGraphByVariable("g1"); assertTrue("excluding non overlapping graphs failed", g0.equalsByElementIds(g0.exclude(g1)).collect().get(0)); assertTrue("excluding switched non overlapping graphs failed", g1.equalsByElementIds(g1.exclude(g0)).collect().get(0)); }
@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)); }
@Test public void testSameGraph() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); LogicalGraph graph = loader.getLogicalGraphByVariable("g0"); LogicalGraph overlap = graph.overlap(graph); assertTrue("overlap of same graph failed", graph.equalsByElementIds(overlap).collect().get(0)); }
@Test public void testGetGraphHead() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); GraphHead inputGraphHead = loader.getGraphHeadByVariable("g0"); GraphHead outputGraphHead = loader.getLogicalGraphByVariable("g0") .getGraphHead().collect().get(0); assertEquals("GraphHeads were not equal", inputGraphHead, outputGraphHead); }
@Test public void testSameGraph() throws Exception { FlinkAsciiGraphLoader loader = getSocialNetworkLoader(); LogicalGraph g0 = loader.getLogicalGraphByVariable("g0"); LogicalGraph combination = g0.combine(g0); assertTrue("combining same graph failed", g0.equalsByElementIds(combination).collect().get(0)); }
@Test public void testSingleFromGraphsMethod() throws Exception { GraphCollection expected = loader.getGraphCollectionByVariables("g0"); GraphCollection result = factory.fromGraphs(loader.getLogicalGraphByVariable("g0")); collectAndAssertTrue(result.equalsByGraphElementData(expected)); }
@Test public void testFromGraphMethod() throws Exception { GraphCollection expected = loader.getGraphCollectionByVariables("g0"); GraphCollection result = factory.fromGraph(loader.getLogicalGraphByVariable("g0")); collectAndAssertTrue(expected.equalsByGraphElementData(result)); }
@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)); }
@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 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 testRead() throws Exception { String edgeListFile = getFilePath("/data/edgelist/vertexlabeled/input"); String gdlFile = getFilePath("/data/edgelist/vertexlabeled/expected.gdl"); DataSource dataSource = new VertexLabeledEdgeListDataSource(edgeListFile, " ", "lan", getConfig()); LogicalGraph result = dataSource.getLogicalGraph(); FlinkAsciiGraphLoader loader = getLoaderFromFile(gdlFile); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(expected.equalsByElementData(result)); } }
@Test public void testRead() throws Exception { String edgeListFile = getFilePath("/data/edgelist/basic/input"); String gdlFile = getFilePath("/data/edgelist/basic/expected.gdl"); DataSource dataSource = new EdgeListDataSource(edgeListFile, ",", getConfig()); LogicalGraph result = dataSource.getLogicalGraph(); FlinkAsciiGraphLoader loader = getLoaderFromFile(gdlFile); LogicalGraph expected = loader.getLogicalGraphByVariable("expected"); collectAndAssertTrue(expected.equalsByElementData(result)); } }
@Test public void testExecute() throws Exception { FlinkAsciiGraphLoader loader = new FlinkAsciiGraphLoader(getConfig()); loader.initDatabaseFromFile(getFilePath("/data/gdl/iig_btgs.gdl")); LogicalGraph iig = loader.getLogicalGraphByVariable("iig"); GraphCollection expectation = loader .getGraphCollectionByVariables("btg1", "btg2", "btg3", "btg4"); GraphCollection result = iig .callForCollection(new BusinessTransactionGraphs()); collectAndAssertTrue(expectation.equalsByGraphElementData(result)); } }