You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/06/26 19:24:54 UTC

incubator-tinkerpop git commit: added more MatchPredicateStratetegyTest tests. Fixed up an old MatchTest that was failing for a known reason, but now is right.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master bc130ff5a -> d5b70bef8


added more MatchPredicateStratetegyTest tests. Fixed up an old MatchTest that was failing for a known reason, but now is right.


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

Branch: refs/heads/master
Commit: d5b70bef8e016ec05c364ab5525b75379d412ba3
Parents: bc130ff
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Jun 26 11:24:50 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Jun 26 11:24:50 2015 -0600

----------------------------------------------------------------------
 .../optimization/MatchPredicateStrategy.java    |  4 +-
 .../MatchPredicateStrategyTest.java             |  8 ++-
 .../traversal/step/map/GroovyMatchTest.groovy   |  8 +--
 .../process/traversal/step/map/MatchTest.java   | 17 +++---
 .../gremlin/hadoop/structure/HadoopGraph.java   |  4 +-
 .../tinkergraph/structure/TinkerGraphTest.java  | 56 +++-----------------
 6 files changed, 30 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5b70bef/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
index dc26549..3a41092 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategy.java
@@ -103,7 +103,7 @@ public final class MatchPredicateStrategy extends AbstractTraversalStrategy<Trav
                                     .findAny()
                                     .isPresent()) {
                         matchStep.removeGlobalChild(matchTraversal);
-                        matchTraversal.removeStep(0);                                     // remove MatchStartStep
+                        matchTraversal.removeStep(0);                                       // remove MatchStartStep
                         matchTraversal.removeStep(matchTraversal.getSteps().size() - 1);    // remove MatchEndStep
                         matchStep.getPreviousStep().addLabel(startLabel);
                         TraversalHelper.insertTraversal(matchStep.getPreviousStep(), matchTraversal, traversal);
@@ -119,7 +119,7 @@ public final class MatchPredicateStrategy extends AbstractTraversalStrategy<Trav
         else {
             final String startLabel = MatchStep.Helper.computeStartLabel(matchStep.getGlobalChildren());
             Step<?, ?> previousStep = matchStep.getPreviousStep();
-            if(previousStep.getLabels().contains(startLabel))
+            if (previousStep.getLabels().contains(startLabel))
                 return startLabel;
             while (!(previousStep instanceof EmptyStep)) {
                 if (!previousStep.getLabels().isEmpty())

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5b70bef/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
index 8524334..3111381 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
@@ -21,6 +21,7 @@
 
 package org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization;
 
+import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
@@ -122,7 +123,12 @@ public class MatchPredicateStrategyTest {
                     {__.out().as("a").out().match(as("a").has("name", "marko"), as("a").out().as("b")), __.out().as("a").out().match(as("a").has("name", "marko"), as("a").out().as("b"))}, // no has() pull out
                     {__.map(__.match(as("a").has("name", "marko"), as("a").out().as("b"))), __.map(__.match(as("a").has("name", "marko"), as("a").out().as("b")))}, // no has() pull out
                     {__.out().as("c").match(as("a").has("name", "marko"), as("a").out().as("b")), __.out().as("c").match(as("a").has("name", "marko"), as("a").out().as("b"))}, // no has() pull out
-                    //{__.match(as("a").out().as("b")).where(as("b").out("knows").as("c")), __.match(as("a").out().as("b"), as("b").where(__.out("knows").as("c")))},
+                    /////////
+                    {__.match(as("a").out().as("b"), __.where(as("b").out("knows").as("c"))), __.match(as("a").out().as("b"), as("b").where(__.out("knows").as("c")))}, // make as().where()
+                    {__.match(as("a").out().as("b"), __.where("a", P.gt("b"))), __.match(as("a").out().as("b"), __.as("a").where(P.gt("b")))},  // make as().where()
+                    /////////
+                    //{__.match(as("a").out().as("b")).where(as("b").out("knows").as("c")), __.match(as("a").out().as("b"), as("b").where(__.out("knows").as("c")))}, // make as().where()
+                    //{__.match(as("a").out().as("b")).where("a", P.gt("b")), __.match(as("a").out().as("b"), __.as("a").where(P.gt("b")))},  // make as().where()
             });
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5b70bef/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
index 21d98c1..08b6300 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
@@ -223,11 +223,11 @@ public abstract class GroovyMatchTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_out_out_hasXname_rippleX_matchXa__b_created_a__c_knows_bX_selectXcX_outXknowsX_name() {
+        public Traversal<Vertex, String> get_g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX() {
             TraversalScriptHelper.compute("""
-                g.V.out.out.as('b').match(
-                    __.as('b').out('created').as('a'),
-                    __.as('c').out('knows').as('b')).select('c').out('knows').name
+                g.V().out().as("c").match(
+                    as("b").out("knows").as("a"),
+                    as("c").out("created").as("e")).select("c")
             """, g)
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5b70bef/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
index 488b907..f0c012a 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
@@ -104,8 +104,7 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
     //TODO: with Traversal.reverse()
     public abstract Traversal<Vertex, Map<String, String>> get_g_V_matchXa_created_b__c_created_bX_select_byXnameX();
 
-    //TODO: with Traversal.reverse()
-    public abstract Traversal<Vertex, String> get_g_V_out_out_hasXname_rippleX_matchXa__b_created_a__c_knows_bX_selectXcX_outXknowsX_name();
+    public abstract Traversal<Vertex, String> get_g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX();
 
     // nested or/and with patterns in order that won't execute serially
     public abstract Traversal<Vertex, Map<String, Object>> get_g_V_matchXa_whereXa_neqXcXX__a_created_b__orXa_knows_vadas__a_0knows_and_a_hasXlabel_personXX__b_0created_c__b_0created_count_isXgtX1XXX_select_byXidX();
@@ -281,12 +280,10 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
         traversal.iterate();
     }
 
-    // TODO: this test requires Traversal.reverse()
     @Test(expected = IllegalStateException.class)
-    @Ignore
     @LoadGraphWith(MODERN)
-    public void g_V_out_out_hasXname_rippleX_matchXb_created_a__c_knows_bX_selectXcX_outXknowsX_name() throws Exception {
-        final Traversal<Vertex, String> traversal = get_g_V_out_out_hasXname_rippleX_matchXa__b_created_a__c_knows_bX_selectXcX_outXknowsX_name();
+    public void g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX() throws Exception {
+        final Traversal<Vertex, String> traversal = get_g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX();
         printTraversalForm(traversal);
         traversal.iterate();
     }
@@ -614,10 +611,10 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_out_out_hasXname_rippleX_matchXa__b_created_a__c_knows_bX_selectXcX_outXknowsX_name() {
-            return g.V().out().out().as("b").match(
-                    as("b").out("created").as("a"),
-                    as("c").out("knows").as("b")).select("c").out("knows").values("name");
+        public Traversal<Vertex, String> get_g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX() {
+            return g.V().out().as("c").match(
+                    as("b").out("knows").as("a"),
+                    as("c").out("created").as("e")).select("c");
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5b70bef/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
index 2971e1d..7589588 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
@@ -74,7 +74,7 @@ import java.util.stream.Stream;
         reason = "Giraph does a hard kill on failure and stops threads which stops test cases. Exception handling semantics are correct though.")
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchTest$Traversals",
-        method = "g_V_out_out_hasXname_rippleX_matchXb_created_a__c_knows_bX_selectXcX_outXknowsX_name",
+        method = "g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX",
         reason = "Giraph does a hard kill on failure and stops threads which stops test cases. Exception handling semantics are correct though.")
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchTest$Traversals",
@@ -90,7 +90,7 @@ import java.util.stream.Stream;
         reason = "Giraph does a hard kill on failure and stops threads which stops test cases. Exception handling semantics are correct though.")
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMatchTest$Traversals",
-        method = "g_V_out_out_hasXname_rippleX_matchXb_created_a__c_knows_bX_selectXcX_outXknowsX_name",
+        method = "g_V_out_asXcX_matchXb_knows_a__c_created_eX_selectXcX",
         reason = "Giraph does a hard kill on failure and stops threads which stops test cases. Exception handling semantics are correct though.")
 @Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMatchTest$Traversals",

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d5b70bef/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
index 0a9544e..ab1da96 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphTest.java
@@ -167,57 +167,17 @@ public class TinkerGraphTest {
     @Test
     @Ignore
     public void testPlay7() throws Exception {
-        TinkerGraph graph = TinkerGraph.open();
+        /*TinkerGraph graph = TinkerGraph.open();
         graph.createIndex("name",Vertex.class);
-        graph.io(GraphMLIo.build()).readGraph("/Users/marko/software/tinkerpop/tinkerpop3/data/grateful-dead.xml");
-        GraphTraversalSource g = graph.traversal(GraphTraversalSource.standard());
+        graph.io(GraphMLIo.build()).readGraph("/Users/marko/software/tinkerpop/tinkerpop3/data/grateful-dead.xml");*/
         //System.out.println(g.V().properties().key().groupCount().next());
+        TinkerGraph graph = TinkerFactory.createModern();
+        GraphTraversalSource g = graph.traversal(GraphTraversalSource.standard());
         final List<Supplier<GraphTraversal<?,?>>> traversals = Arrays.asList(
-                /*() -> g.V().xmatch("a",
-                        as("a").in("sungBy").as("b"),
-                        not(as("a").in("writtenBy").as("b"))).select().by("name"),*/
-                () -> g.V().match(
-                        as("a").in("sungBy").as("b"),
-                        as("a").in("writtenBy").as("b")).select().by("name"),
-                () -> g.V().match(
-                        as("a").out("followedBy").as("b"),
-                        as("b").out("followedBy").as("a")).select().by("name"),
-                () -> g.V().match(
-                        as("a").out("followedBy").count().as("b"),
-                        as("a").in("followedBy").count().as("b"),
-                        as("b").is(P.gt(10))).select("a").by("name"),
-                () -> g.V().match(
-                        as("a").in("sungBy").count().as("b"),
-                        as("a").in("sungBy").as("c"),
-                        as("c").out("followedBy").as("d"),
-                        as("d").out("sungBy").as("e"),
-                        as("e").in("sungBy").count().as("b"),
-                        where("a",P.neq("e"))).select("a","e").by("name"),
-                () -> g.V().match(
-                        as("a").in("followedBy").as("b"),
-                        as("a").out("sungBy").as("c"),
-                        as("a").out("writtenBy").as("d")).select().by("name"),
-                () -> g.V().match(
-                        as("a").in("followedBy").as("b"),
-                        as("a").out("sungBy").as("c"),
-                        as("a").out("writtenBy").as("d"),
-                        where("c", P.neq("d"))).select().by("name"),
-                () -> g.V().match(
-                        as("a").in("sungBy").as("b"),
-                        as("a").in("writtenBy").as("b"),
-                        as("b").out("followedBy").as("c"),
-                        as("c").out("sungBy").as("a"),
-                        as("c").out("writtenBy").as("a")).select().by("name"),
-                () -> g.V().match(
-                        as("a").has("name", "Garcia"),
-                        as("a").in("writtenBy").as("b"),
-                        as("b").out("followedBy").as("c"),
-                        as("c").out("writtenBy").as("d"),
-                        as("d").where(P.neq("a"))).select().by("name"),
-                () -> g.V().as("a").out("followedBy").as("b").match(
-                        as("a").and(has(T.label,"song"),has("performances",P.gt(10))),
-                        as("a").out("writtenBy").as("c"),
-                        as("b").out("writtenBy").as("c")).select().by("name"));
+                () -> g.V().out().as("c").match(
+                        as("b").out("knows").as("a"),
+                        as("c").out("created").as("e")).select("c").out("knows").values("name")
+        );
 
         traversals.forEach(traversal -> {
             System.out.println("pre-strategy:  " + traversal.get());