You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2017/09/20 14:55:57 UTC
tinkerpop git commit: added a test for iterations break, epsilon break,
and for energy conservation.
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1783 87a739172 -> 2d551c18a
added a test for iterations break, epsilon break, and for energy conservation.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2d551c18
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2d551c18
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2d551c18
Branch: refs/heads/TINKERPOP-1783
Commit: 2d551c18a80f528d3fe296144a2d7a68467b0fff
Parents: 87a7391
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Sep 20 08:55:52 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Sep 20 08:55:52 2017 -0600
----------------------------------------------------------------------
.../pagerank/PageRankVertexProgramTest.java | 50 ++++++++++++++++----
1 file changed, 41 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2d551c18/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgramTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgramTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgramTest.java
index 6fb3cb7..8b4f977 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgramTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgramTest.java
@@ -36,7 +36,7 @@ public class PageRankVertexProgramTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void shouldExecutePageRank() throws Exception {
+ public void shouldExecutePageRankWithIterationsBreak() throws Exception {
if (graphProvider.getGraphComputer(graph).features().supportsResultGraphPersistCombination(GraphComputer.ResultGraph.NEW, GraphComputer.Persist.VERTEX_PROPERTIES)) {
final ComputerResult result = graph.compute(graphProvider.getGraphComputer(graph).getClass()).
program(PageRankVertexProgram.build().epsilon(0.0d).iterations(30).create(graph)).submit().get(); // by using epsilon 0.0, we guarantee iterations 30
@@ -69,14 +69,46 @@ public class PageRankVertexProgramTest extends AbstractGremlinProcessTest {
}
}
- /*@Test
+ @Test
@LoadGraphWith(MODERN)
- public void shouldExecutePageRankWithNormalizedValues() throws Exception {
- final ComputerResult result = graph.compute().program(PageRankVertexProgram.build().vertexCount(6).create()).submit().get();
- final double sum = result.graph().traversal().V().values(PageRankVertexProgram.PAGE_RANK).sum().next();
- System.out.println(sum);
- assertEquals(1.0d,sum,0.01);
- }*/
-
+ public void shouldExecutePageRankWithEpsilonBreak() throws Exception {
+ if (graphProvider.getGraphComputer(graph).features().supportsResultGraphPersistCombination(GraphComputer.ResultGraph.NEW, GraphComputer.Persist.VERTEX_PROPERTIES)) {
+ final ComputerResult result = graph.compute(graphProvider.getGraphComputer(graph).getClass()).
+ program(PageRankVertexProgram.build().epsilon(0.00001d).iterations(30).create(graph)).submit().get(); // by using epsilon 0.00001, we should get iterations 11
+ result.graph().traversal().V().forEachRemaining(v -> {
+ assertEquals(3, v.keys().size()); // name, age/lang, pageRank
+ assertTrue(v.keys().contains("name"));
+ assertTrue(v.keys().contains(PageRankVertexProgram.PAGE_RANK));
+ assertEquals(1, IteratorUtils.count(v.values("name")));
+ assertEquals(1, IteratorUtils.count(v.values(PageRankVertexProgram.PAGE_RANK)));
+ final String name = v.value("name");
+ final Double pageRank = v.value(PageRankVertexProgram.PAGE_RANK);
+ //System.out.println(name + "-----" + pageRank);
+ if (name.equals("marko"))
+ assertTrue(pageRank > 0.10 && pageRank < 0.12);
+ else if (name.equals("vadas"))
+ assertTrue(pageRank > 0.13 && pageRank < 0.15);
+ else if (name.equals("lop"))
+ assertTrue(pageRank > 0.29 && pageRank < 0.31);
+ else if (name.equals("josh"))
+ assertTrue(pageRank > 0.13 && pageRank < 0.15);
+ else if (name.equals("ripple"))
+ assertTrue(pageRank > 0.16 && pageRank < 0.18);
+ else if (name.equals("peter"))
+ assertTrue(pageRank > 0.10 && pageRank < 0.12);
+ else
+ throw new IllegalStateException("The following vertex should not exist in the graph: " + name);
+ });
+ assertEquals(result.memory().getIteration(), 11);
+ assertEquals(result.memory().asMap().size(), 0);
+ }
+ }
+ @Test
+ @LoadGraphWith(MODERN)
+ public void shouldExecutePageRankWithEnergyConservation() throws Exception {
+ final ComputerResult result = graph.compute().program(PageRankVertexProgram.build().create(graph)).submit().get();
+ final double sum = result.graph().traversal().V().values(PageRankVertexProgram.PAGE_RANK).sum().next().doubleValue();
+ assertEquals(1.0d, sum, 0.01d);
+ }
}
\ No newline at end of file