TINKERPOP-1976 Added GLV test for peerPressure()
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0a5d8ceb Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0a5d8ceb Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0a5d8ceb Branch: refs/heads/TINKERPOP-1976 Commit: 0a5d8ceb6931e3ab2165cba8cd8414e8f4575ce9 Parents: 85fbd7c Author: Stephen Mallette <sp...@genoprime.com> Authored: Tue Aug 7 13:45:39 2018 -0400 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Thu Aug 9 07:28:09 2018 -0400 ---------------------------------------------------------------------- .../ModernGraphTypeInformation.cs | 1 + .../test/cucumber/feature-steps.js | 3 + gremlin-test/features/map/PeerPressure.feature | 60 ++++++++++++++++++++ .../gremlin/process/FeatureCoverageTest.java | 3 +- 4 files changed, 66 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a5d8ceb/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs ---------------------------------------------------------------------- diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs index 75dd37c..77ed4eb 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/TraversalEvaluation/ModernGraphTypeInformation.cs @@ -39,6 +39,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin.TraversalEvaluation {"lang", typeof(string)}, {"weight", typeof(float)}, {"gremlin.pageRankVertexProgram.pageRank", typeof(double)}, + {"gremlin.peerPressureVertexProgram.cluster", typeof(int)}, {"friendRank", typeof(double)}, {"pageRank", typeof(double)}, {"foo", typeof(object)}, // used when for invalid property key lookups http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a5d8ceb/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 3f76052..e585fcc 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 @@ -70,6 +70,9 @@ const ignoredScenarios = { 'g_V_pageRank_byXpageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX': 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': new IgnoreError(ignoreReason.computerNotSupported), + 'g_V_peerPressure_byXclusterX_byXoutEXknowsXX_pageRankX1X_byXrankX_byXoutEXknowsXX_timesX2X_group_byXclusterX_byXrank_sumX_limitX100X': new IgnoreError(ignoreReason.computerNotSupported), + 'g_V_hasXname_rippleX_inXcreatedX_peerPressure_byXoutEX_byXclusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX': new IgnoreError(ignoreReason.computerNotSupported), }; defineSupportCode(function(methods) { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a5d8ceb/gremlin-test/features/map/PeerPressure.feature ---------------------------------------------------------------------- diff --git a/gremlin-test/features/map/PeerPressure.feature b/gremlin-test/features/map/PeerPressure.feature new file mode 100644 index 0000000..d23fa31 --- /dev/null +++ b/gremlin-test/features/map/PeerPressure.feature @@ -0,0 +1,60 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +Feature: Step - peerPressure() + + Scenario: g_V_peerPressure + Given the modern graph + And the traversal of + """ + g.withComputer().V().peerPressure() + """ + When iterated to list + Then the result should be unordered + | result | + | v[marko] | + | v[vadas] | + | v[lop] | + | v[josh] | + | v[ripple] | + | v[peter] | + And the graph should return 6 for count of "g.withComputer().V().peerPressure().has(\"gremlin.peerPressureVertexProgram.cluster\")" + + Scenario: g_V_peerPressure_byXclusterX_byXoutEXknowsXX_pageRankX1X_byXrankX_byXoutEXknowsXX_timesX2X_group_byXclusterX_byXrank_sumX_limitX100X + Given an unsupported test + Then nothing should happen because + """ + The result returned is not supported under GraphSON 2.x and therefore cannot be properly asserted. More + specifically it has long keys which basically get toString()'d under GraphSON 2.x. This test can be supported + with GraphSON 3.x. + """ + + Scenario: g_V_hasXname_rippleX_inXcreatedX_peerPressure_byXoutEX_byXclusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX + Given the modern graph + And the traversal of + """ + g.withComputer().V().has("name", "ripple").in("created").peerPressure().by(__.outE()).by("cluster").repeat(__.union(__.identity(), __.both())).times(2).dedup().valueMap("name", "cluster") + """ + When iterated to list + Then the result should be unordered + | result | + | m[{"name": ["marko"], "cluster": [1]}] | + | m[{"name": ["vadas"], "cluster": [2]}] | + | m[{"name": ["lop"], "cluster": [4]}] | + | m[{"name": ["josh"], "cluster": [4]}] | + | m[{"name": ["ripple"], "cluster": [4]}] | + | m[{"name": ["peter"], "cluster": [6]}] | http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0a5d8ceb/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java ---------------------------------------------------------------------- diff --git a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java index 6a45d38..2cca50b 100644 --- a/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java +++ b/gremlin-test/src/test/java/org/apache/tinkerpop/gremlin/process/FeatureCoverageTest.java @@ -55,6 +55,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.MinTest; import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderTest; import org.apache.tinkerpop.gremlin.process.traversal.step.map.PageRankTest; import org.apache.tinkerpop.gremlin.process.traversal.step.map.PathTest; +import org.apache.tinkerpop.gremlin.process.traversal.step.map.PeerPressureTest; import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectTest; import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesTest; import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectTest; @@ -143,7 +144,7 @@ public class FeatureCoverageTest { OrderTest.class, PageRankTest.class, PathTest.class, - // PeerPressureTest.class, + PeerPressureTest.class, // ProfileTest.class, // ProgramTest.class, ProjectTest.class,