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/02/09 19:31:42 UTC

[28/28] tinkerpop git commit: TINKERPOP-1857 Added full coverage of order() GLV tests

TINKERPOP-1857 Added full coverage of order() GLV tests


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4dcd0177
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4dcd0177
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4dcd0177

Branch: refs/heads/TINKERPOP-1857
Commit: 4dcd01770198e3be0139a1ad449c516ef2bb7f56
Parents: 720b2de
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Feb 6 08:04:10 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Feb 9 14:30:59 2018 -0500

----------------------------------------------------------------------
 gremlin-test/features/map/Order.feature         | 193 +++++++++++++++++++
 .../gremlin/process/FeatureCoverageTest.java    |   4 +-
 2 files changed, 196 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4dcd0177/gremlin-test/features/map/Order.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/map/Order.feature b/gremlin-test/features/map/Order.feature
index 976906f..e7ff00c 100644
--- a/gremlin-test/features/map/Order.feature
+++ b/gremlin-test/features/map/Order.feature
@@ -130,3 +130,196 @@ Feature: Step - order()
       | m[{"a":"v[peter]","b":"v[lop]"}] |
       | m[{"a":"v[josh]","b":"v[ripple]"}] |
       | m[{"a":"v[josh]","b":"v[lop]"}] |
+
+  Scenario: g_V_both_hasLabelXpersonX_order_byXage_decrX_limitX5X_name
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().both().hasLabel("person").order().by("age", Order.decr).limit(5).values("name")
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | peter  |
+      | josh  |
+      | josh  |
+      | josh |
+      | marko  |
+
+  Scenario: g_V_properties_order_byXkey_decrX_key
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().properties().order().by(T.key, Order.decr).key()
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | name   |
+      | name   |
+      | name   |
+      | name   |
+      | name   |
+      | name   |
+      | lang   |
+      | lang   |
+      | age    |
+      | age    |
+      | age    |
+      | age    |
+
+  Scenario: g_V_hasLabelXpersonX_order_byXvalueXageX__decrX_name
+    Given the modern graph
+    And using the parameter l1 defined as "c[it.value('age')]"
+    And the traversal of
+      """
+      g.V().hasLabel("person").order().by(l1, Order.decr).values("name")
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | peter  |
+      | josh   |
+      | marko  |
+      | vadas  |
+
+  Scenario: g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().hasLabel("person").group().by("name").by(__.outE().values("weight").sum()).order(Scope.local).by(Column.values)
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | m[{"vadas":"d[0].d","peter":"d[0.2].d","josh":"d[1.4].d","marko":"d[1.9].d"}] |
+
+  Scenario: g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().local(__.bothE().values("weight").fold()).order().by(__.sum(Scope.local), Order.decr)
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | l[d[1.0].f,d[0.4].f,d[1.0].f] |
+      | l[d[0.4].f,d[0.5].f,d[1.0].f] |
+      | l[d[0.4].f,d[0.4].f,d[0.2].f] |
+      | l[d[1.0].f]                   |
+      | l[d[0.5].f]                   |
+      | l[d[0.2].f]                   |
+
+  Scenario: g_V_group_byXlabelX_byXname_order_byXdecrX_foldX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().group().by(T.label).by(__.values("name").order().by(Order.decr).fold())
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | m[{"software":"l[ripple,lop]","person":"l[vadas,peter,marko,josh]"}]  |
+
+  Scenario: g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().hasLabel("person").group().by("name").by(__.outE().values("weight").sum()).unfold().order().by(Column.values, Order.decr)
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | m[{"marko":"d[1.9].d"}]  |
+      | m[{"josh":"d[1.4].d"}]  |
+      | m[{"peter":"d[0.2].d"}]  |
+      | m[{"vadas":"d[0].d"}]  |
+
+  Scenario: g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_decrX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().as("v").map(__.bothE().values("weight").fold()).sum(Scope.local).as("s").select("v", "s").order().by(__.select("s"), Order.decr)
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | m[{"v":"v[josh]","s":"d[2.4].d"}]  |
+      | m[{"v":"v[marko]","s":"d[1.9].d"}]  |
+      | m[{"v":"v[lop]","s":"d[1.0].d"}]  |
+      | m[{"v":"v[ripple]","s":"d[1.0].d"}]  |
+      | m[{"v":"v[vadas]","s":"d[0.5].d"}]  |
+      | m[{"v":"v[peter]","s":"d[0.2].d"}]  |
+
+  Scenario: g_V_hasLabelXpersonX_fold_orderXlocalX_byXageX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().hasLabel("person").fold().order(Scope.local).by("age")
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | l[v[vadas],v[marko],v[josh],v[peter]] |
+
+  Scenario: g_V_both_hasLabelXpersonX_order_byXage_decrX_name
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().both().hasLabel("person").order().by("age", Order.decr).values("name")
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | peter  |
+      | josh   |
+      | josh   |
+      | josh   |
+      | marko  |
+      | marko  |
+      | marko  |
+      | vadas  |
+
+  Scenario: g_V_order_byXoutE_count__decrX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().order().by(__.outE().count(), Order.decr)
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | v[marko] |
+      | v[josh]   |
+      | v[peter] |
+      | v[vadas] |
+      | v[lop] |
+      | v[ripple] |
+
+  Scenario: g_V_hasLabelXpersonX_order_byXageX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().hasLabel("person").order().by("age")
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | v[vadas] |
+      | v[marko] |
+      | v[josh]   |
+      | v[peter] |
+
+  Scenario: g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_decrX_byXkeys_incrX
+    Given the modern graph
+    And using the parameter v1 defined as "v[marko]"
+    And using the parameter l1 defined as "c[[1:it.get().value('age'),2:it.get().value('age')*2,3:it.get().value('age')*3,4:it.get().value('age')]]"
+    And the traversal of
+      """
+      g.V(v1).hasLabel("person").map(l1).order(Scope.local).by(Column.values, Order.decr).by(Column.keys, Order.incr)
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | m[{"3":"d[87].i","2":"d[58].i","1":"d[29].i","4":"d[29].i"}] |
+

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4dcd0177/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 48c64b9..b2a83d7 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
@@ -113,7 +113,9 @@ public class FeatureCoverageTest {
             "g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__b_followedBy_c__c_writtenBy_d__whereXd_neqXaXXX",
             "g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_dX_whereXc_sungBy_dX_whereXd_hasXname_GarciaXX",
             "get_g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count",
-            "g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count");
+            "g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count",
+            "g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_incrX",
+            "g_V_hasLabelXsongX_order_byXperfomances_decrX_byXnameX_rangeX110_120X_name");
 
     @Test
     // @Ignore("As it stands we won't have all of these tests migrated initially so there is no point to running this in full - it can be flipped on later")