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 <okramma...@gmail.com>
Authored: Wed Sep 20 08:55:52 2017 -0600
Committer: Marko A. Rodriguez <okramma...@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

Reply via email to