You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/08/16 16:58:35 UTC
[47/50] tinkerpop git commit: Fixed up pageRank() tests to be more
GLV compliant CTR
Fixed up pageRank() tests to be more GLV compliant CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/69d46f73
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/69d46f73
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/69d46f73
Branch: refs/heads/TINKERPOP-1342
Commit: 69d46f7335fac24e2210987eefa16036ceea8d46
Parents: bdda913
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 14 12:51:07 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 14 12:51:07 2018 -0400
----------------------------------------------------------------------
.../test/cucumber/feature-steps.js | 6 +-
gremlin-test/features/map/PageRank.feature | 47 +++++++++++-----
.../traversal/step/map/PageRankTest.java | 59 ++++++++++----------
3 files changed, 63 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69d46f73/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
index 0cddc02..8a14112 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
@@ -67,9 +67,9 @@ const ignoredScenarios = {
'g_V_outXcreatedX_pageRank_byXbothEX_byXprojectRankX_timesX0X_valueMapXname_projectRankX': new IgnoreError(ignoreReason.computerNotSupported),
'g_V_pageRank_order_byXpageRank_decrX_byXnameX_name': new IgnoreError(ignoreReason.computerNotSupported),
'g_V_pageRank_order_byXpageRank_decrX_name_limitX2X': new IgnoreError(ignoreReason.computerNotSupported),
- 'g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_valueMapXname_friendRankX': new IgnoreError(ignoreReason.computerNotSupported),
- 'g_V_hasLabelXpersonX_pageRank_byXpageRankX_order_byXpageRankX_valueMapXname_pageRankX': new IgnoreError(ignoreReason.computerNotSupported),
- 'g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX': new IgnoreError(ignoreReason.computerNotSupported),
+ 'g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX': new IgnoreError(ignoreReason.computerNotSupported),
+ 'g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX': new IgnoreError(ignoreReason.computerNotSupported),
+ 'g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX': new IgnoreError(ignoreReason.computerNotSupported),
'g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_byXinEXcreatedXX_timesX1X_byXpriorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX': new IgnoreError(ignoreReason.computerNotSupported),
'g_V_outXcreatedX_groupXmX_byXlabelX_pageRankX1X_byXpageRankX_byXinEX_timesX1X_inXcreatedX_groupXmX_byXpageRankX_capXmX': new IgnoreError(ignoreReason.computerNotSupported),
'g_V_peerPressure_hasXclusterX': new IgnoreError(ignoreReason.computerNotSupported),
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69d46f73/gremlin-test/features/map/PageRank.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/PageRank.feature b/gremlin-test/features/map/PageRank.feature
index 24a19ec..bd3fc6b 100644
--- a/gremlin-test/features/map/PageRank.feature
+++ b/gremlin-test/features/map/PageRank.feature
@@ -76,30 +76,47 @@ Feature: Step - pageRank()
| lop |
| ripple |
- Scenario: g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_valueMapXname_friendRankX
+ Scenario: g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX
Given the modern graph
- Given an unsupported test
- Then nothing should happen because
+ And the traversal of
"""
- The result is not completely deterministic with respect to the decimals that pageRank() produces and the
- GLV framework does not have a notion for asserting anything beyond an equals() sort of state.
+ g.withComputer().V().pageRank().by(__.outE("knows")).by("friendRank").project("name", "friendRank").by("name").by(__.values("friendRank").math("ceil(_ * 100)"))
"""
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"name": "marko", "friendRank": 15.0}] |
+ | m[{"name": "vadas", "friendRank": 21.0}] |
+ | m[{"name": "lop", "friendRank": 15.0}] |
+ | m[{"name": "josh", "friendRank": 21.0}] |
+ | m[{"name": "ripple", "friendRank": 15.0}] |
+ | m[{"name": "peter", "friendRank": 15.0}] |
- Scenario: g_V_hasLabelXpersonX_pageRank_byXpageRankX_order_byXpageRankX_valueMapXname_pageRankX
- Given an unsupported test
- Then nothing should happen because
+ Scenario: g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX
+ Given the modern graph
+ And the traversal of
"""
- The result is not completely deterministic with respect to the decimals that pageRank() produces and the
- GLV framework does not have a notion for asserting anything beyond an equals() sort of state.
+ g.withComputer().V().hasLabel("person").pageRank().by("pageRank").project("name", "pageRank").by("name").by(__.values("pageRank").math("ceil(_ * 100)"))
"""
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"name": "marko", "pageRank": 46.0}] |
+ | m[{"name": "vadas", "pageRank": 59.0}] |
+ | m[{"name": "josh", "pageRank": 59.0}] |
+ | m[{"name": "peter", "pageRank": 46.0}] |
- Scenario: g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX
- Given an unsupported test
- Then nothing should happen because
+ Scenario: g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX
+ Given the modern graph
+ And the traversal of
"""
- The result is not completely deterministic with respect to the decimals that pageRank() produces and the
- GLV framework does not have a notion for asserting anything beyond an equals() sort of state.
+ g.withComputer().V().pageRank().by("pageRank").as("a").out("knows").values("pageRank").as("b").select("a", "b").by().by(__.math("ceil(_ * 100)"))
"""
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a": "v[marko]", "b": 15.0}] |
+ | m[{"a": "v[marko]", "b": 15.0}] |
Scenario: g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_byXinEXcreatedXX_timesX1X_byXpriorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX
Given the modern graph
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/69d46f73/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PageRankTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PageRankTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PageRankTest.java
index 620d0e3..3eb06c4 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PageRankTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PageRankTest.java
@@ -56,11 +56,11 @@ public abstract class PageRankTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, String> get_g_V_pageRank_order_byXpageRank_descX_name_limitX2X();
- public abstract Traversal<Vertex, Map<String, List<Object>>> get_g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_valueMapXname_friendRankX();
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX();
- public abstract Traversal<Vertex, Map<String, List<Object>>> get_g_V_hasLabelXpersonX_pageRank_byXpageRankX_order_byXpageRankX_valueMapXname_pageRankX();
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX();
- public abstract Traversal<Vertex, Map<String, Object>> get_g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX();
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX();
public abstract Traversal<Vertex, Map<String, List<Object>>> get_g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_byXinEXcreatedXX_timesX1X_byXpriorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX();
@@ -109,21 +109,19 @@ public abstract class PageRankTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_valueMapXname_friendRankX() {
- final Traversal<Vertex, Map<String, List<Object>>> traversal = get_g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_valueMapXname_friendRankX();
+ public void g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX();
printTraversalForm(traversal);
int counter = 0;
while (traversal.hasNext()) {
- final Map<String, List<Object>> map = traversal.next();
+ final Map<String, Object> map = traversal.next();
assertEquals(2, map.size());
- assertEquals(1, map.get("name").size());
- assertEquals(1, map.get("friendRank").size());
- String name = (String) map.get("name").get(0);
- Double friendRank = (Double) map.get("friendRank").get(0);
+ final String name = (String) map.get("name");
+ final Double friendRank = (Double) map.get("friendRank");
if (name.equals("lop") || name.equals("ripple") || name.equals("peter") || name.equals("marko"))
- assertEquals(0.15, friendRank, 0.01);
+ assertEquals(15.0, friendRank, 0.01);
else
- assertEquals(0.21375, friendRank, 0.01);
+ assertEquals(21.0, friendRank, 0.01);
counter++;
}
@@ -143,21 +141,20 @@ public abstract class PageRankTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void g_V_hasLabelXpersonX_pageRank_byXpageRankX_order_byXpageRankX_valueMapXname_pageRankX() {
- final Traversal<Vertex, Map<String, List<Object>>> traversal = get_g_V_hasLabelXpersonX_pageRank_byXpageRankX_order_byXpageRankX_valueMapXname_pageRankX();
+ public void g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX();
printTraversalForm(traversal);
int counter = 0;
- double lastPageRank = Double.MIN_VALUE;
while (traversal.hasNext()) {
- final Map<String, List<Object>> map = traversal.next();
+ final Map<String, Object> map = traversal.next();
assertEquals(2, map.size());
- assertEquals(1, map.get("name").size());
- assertEquals(1, map.get("pageRank").size());
- String name = (String) map.get("name").get(0);
- double pageRank = (Double) map.get("pageRank").get(0);
- assertTrue(pageRank >= lastPageRank);
- lastPageRank = pageRank;
- assertFalse(name.equals("lop") || name.equals("ripple"));
+ final String name = (String) map.get("name");
+ final Double pageRank = (Double) map.get("pageRank");
+ if (name.equals("marko") || name.equals("peter"))
+ assertEquals(46.0, pageRank, 0.01);
+ else
+ assertEquals(59.0, pageRank, 0.01);
+
counter++;
}
assertEquals(4, counter);
@@ -165,8 +162,8 @@ public abstract class PageRankTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
- public void g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX() {
- final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX();
+ public void g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX();
printTraversalForm(traversal);
int counter = 0;
while (traversal.hasNext()) {
@@ -246,8 +243,8 @@ public abstract class PageRankTest extends AbstractGremlinProcessTest {
}
@Override
- public Traversal<Vertex, Map<String, List<Object>>> get_g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_valueMapXname_friendRankX() {
- return g.V().pageRank().by(__.outE("knows")).by("friendRank").valueMap("name", "friendRank");
+ public Traversal<Vertex, Map<String, Object>> get_g_V_pageRank_byXoutEXknowsXX_byXfriendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX() {
+ return g.V().pageRank().by(__.outE("knows")).by("friendRank").project("name", "friendRank").by("name").by(__.values("friendRank").math("ceil(_ * 100)"));
}
@Override
@@ -261,13 +258,13 @@ public abstract class PageRankTest extends AbstractGremlinProcessTest {
}
@Override
- public Traversal<Vertex, Map<String, List<Object>>> get_g_V_hasLabelXpersonX_pageRank_byXpageRankX_order_byXpageRankX_valueMapXname_pageRankX() {
- return g.V().hasLabel("person").pageRank().by("pageRank").order().by("pageRank").valueMap("name", "pageRank");
+ public Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_pageRank_byXpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX() {
+ return g.V().hasLabel("person").pageRank().by("pageRank").project("name", "pageRank").by("name").by(__.values("pageRank").math("ceil(_ * 100)"));
}
@Override
- public Traversal<Vertex, Map<String, Object>> get_g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX() {
- return g.V().pageRank().by("pageRank").as("a").out("knows").values("pageRank").as("b").select("a", "b");
+ public Traversal<Vertex, Map<String, Object>> get_g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX() {
+ return g.V().pageRank().by("pageRank").as("a").out("knows").values("pageRank").as("b").select("a", "b").by().by(__.math("ceil(_ * 100)"));
}
@Override