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());