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 2017/11/02 12:58:53 UTC
[1/2] tinkerpop git commit: TINKERPOP-1784 Added flatMap()/fold()
feature tests
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1784 b520a378e -> 327a51bcb
TINKERPOP-1784 Added flatMap()/fold() feature tests
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/aa700cb0
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/aa700cb0
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/aa700cb0
Branch: refs/heads/TINKERPOP-1784
Commit: aa700cb0d3f7f480ca881cbcf45cfe3cedb58cb3
Parents: b520a37
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Nov 2 08:11:48 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Nov 2 08:11:48 2017 -0400
----------------------------------------------------------------------
.../src/main/jython/radish/feature_steps.py | 3 +-
gremlin-test/features/map/FlatMap.feature | 35 ++++++++++++
gremlin-test/features/map/Fold.feature | 57 ++++++++++++++++++++
3 files changed, 94 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aa700cb0/gremlin-python/src/main/jython/radish/feature_steps.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/radish/feature_steps.py b/gremlin-python/src/main/jython/radish/feature_steps.py
index b7050e9..dae6361a 100644
--- a/gremlin-python/src/main/jython/radish/feature_steps.py
+++ b/gremlin-python/src/main/jython/radish/feature_steps.py
@@ -21,7 +21,7 @@ import json
import re
from gremlin_python.structure.graph import Graph, Path
from gremlin_python.process.graph_traversal import __
-from gremlin_python.process.traversal import P, Scope, Column, Order, Direction, T, Pick
+from gremlin_python.process.traversal import P, Scope, Column, Order, Direction, T, Pick, Operator
from radish import given, when, then
from hamcrest import *
@@ -218,6 +218,7 @@ def _make_traversal(g, traversal_string, params):
"P": P,
"Pick": Pick,
"Scope": Scope,
+ "Operator": Operator,
"T": T}
b.update(params)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aa700cb0/gremlin-test/features/map/FlatMap.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/FlatMap.feature b/gremlin-test/features/map/FlatMap.feature
new file mode 100644
index 0000000..7384ee3
--- /dev/null
+++ b/gremlin-test/features/map/FlatMap.feature
@@ -0,0 +1,35 @@
+# 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 - flatMap()
+
+ Scenario: g_V_asXaX_flatMapXselectXaXX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().as("a").flatMap(__.select("a"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | v[marko] |
+ | v[vadas] |
+ | v[lop] |
+ | v[josh] |
+ | v[ripple] |
+ | v[peter] |
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/aa700cb0/gremlin-test/features/map/Fold.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Fold.feature b/gremlin-test/features/map/Fold.feature
new file mode 100644
index 0000000..1c71b27
--- /dev/null
+++ b/gremlin-test/features/map/Fold.feature
@@ -0,0 +1,57 @@
+# 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 - fold()
+
+ Scenario: g_V_fold
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().fold()
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | l[v[marko],v[vadas],v[lop],v[josh],v[ripple],v[peter]] |
+
+ Scenario: g_V_fold_unfold
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().fold().unfold()
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | v[marko] |
+ | v[vadas] |
+ | v[lop] |
+ | v[josh] |
+ | v[ripple] |
+ | v[peter] |
+
+ Scenario: g_V_age_foldX0_plusX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().values("age").fold(0, Operator.sum)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | d[123] |
+
[2/2] tinkerpop git commit: TINKERPOP-1784 Added feature tests for V()
Posted by sp...@apache.org.
TINKERPOP-1784 Added feature tests for V()
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/327a51bc
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/327a51bc
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/327a51bc
Branch: refs/heads/TINKERPOP-1784
Commit: 327a51bcbdd2f976ba5a724f4742976aa7078b56
Parents: aa700cb
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Nov 2 08:58:27 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Nov 2 08:58:27 2017 -0400
----------------------------------------------------------------------
gremlin-test/features/map/Graph.feature | 109 +++++++++++++++++++++++++++
1 file changed, 109 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/327a51bc/gremlin-test/features/map/Graph.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Graph.feature b/gremlin-test/features/map/Graph.feature
new file mode 100644
index 0000000..249d6a3
--- /dev/null
+++ b/gremlin-test/features/map/Graph.feature
@@ -0,0 +1,109 @@
+# 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 - V()
+
+ Scenario: g_VX1X_V_valuesXnameX
+ Given the modern graph
+ And using the parameter v1Id defined as "v[marko].id"
+ And the traversal of
+ """
+ g.V(v1Id).V().values("name")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
+ | vadas |
+ | lop |
+ | josh |
+ | ripple |
+ | peter |
+
+ Scenario: g_V_outXknowsX_V_name
+ Given the modern graph
+ And using the parameter v1Id defined as "v[marko].id"
+ And the traversal of
+ """
+ g.V().out("knows").V().values("name")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
+ | marko |
+ | vadas |
+ | vadas |
+ | lop |
+ | lop |
+ | josh |
+ | josh |
+ | ripple |
+ | ripple |
+ | peter |
+ | peter |
+
+ Scenario: g_V_hasXname_GarciaX_inXsungByX_asXsongX_V_hasXname_Willie_DixonX_inXwrittenByX_whereXeqXsongXX_name
+ Given the grateful graph
+ And the traversal of
+ """
+ g.V().has("artist", "name", "Garcia").in("sungBy").as("song").
+ V().has("artist", "name", "Willie_Dixon").in("writtenBy").where(P.eq("song")).values("name")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | MY BABE |
+ | HOOCHIE COOCHIE MAN |
+
+ Scenario: g_V_hasLabelXpersonX_asXpX_VXsoftwareX_addInEXuses_pX
+ Given the empty graph
+ And the graph initializer of
+ """
+ g.addV("person").property(T.id, 1).property("name", "marko").property("age", 29).as("marko").
+ addV("person").property(T.id, 2).property("name", "vadas").property("age", 27).as("vadas").
+ addV("software").property(T.id, 3).property("name", "lop").property("lang", "java").as("lop").
+ addV("person").property(T.id, 4).property("name","josh").property("age", 32).as("josh").
+ addV("software").property(T.id, 5).property("name", "ripple").property("lang", "java").as("ripple").
+ addV("person").property(T.id, 6).property("name", "peter").property("age", 35).as('peter').
+ addE("knows").from("marko").to("vadas").property(T.id, 7).property("weight", 0.5).
+ addE("knows").from("marko").to("josh").property(T.id, 8).property("weight", 1.0).
+ addE("created").from("marko").to("lop").property(T.id, 9).property("weight", 0.4).
+ addE("created").from("josh").to("ripple").property(T.id, 10).property("weight", 1.0).
+ addE("created").from("josh").to("lop").property(T.id, 11).property("weight", 0.4).
+ addE("created").from("peter").to("lop").property(T.id, 12).property("weight", 0.2)
+ """
+ And using the parameter software defined as "l[v[lop],v[ripple]]"
+ And using the parameter v1Id defined as "v[marko].id"
+ And using the parameter v2Id defined as "v[vadas].id"
+ And using the parameter v3Id defined as "v[lop].id"
+ And using the parameter v4Id defined as "v[josh].id"
+ And using the parameter v5Id defined as "v[ripple].id"
+ And using the parameter v6Id defined as "v[peter].id"
+ And the traversal of
+ """
+ g.V().hasLabel("person").as("p").V(software).addE("uses").from("p")
+ """
+ When iterated to list
+ Then the result should have a count of 8
+ And the graph should return 8 for count of "g.E().hasLabel(\"uses\")"
+ And the graph should return 2 for count of "g.V(v1Id).outE(\"uses\")"
+ And the graph should return 2 for count of "g.V(v2Id).outE(\"uses\")"
+ And the graph should return 4 for count of "g.V(v3Id).inE(\"uses\")"
+ And the graph should return 2 for count of "g.V(v4Id).outE(\"uses\")"
+ And the graph should return 4 for count of "g.V(v5Id).inE(\"uses\")"
+ And the graph should return 2 for count of "g.V(v6Id).outE(\"uses\")"