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/03/19 19:26:26 UTC
[08/40] incubator-tinkerpop git commit: the traversal steps provided
by TinkerPop are the foundation for all dsl. GraphTraversal is just a dsl of
traversal. Refactored the process API to reflect this concept. Fixed #592.
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/ProfileTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/ProfileTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/ProfileTest.java
deleted file mode 100644
index a5bc114..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/ProfileTest.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.*;
-import org.apache.tinkerpop.gremlin.process.graph.traversal.__;
-import org.apache.tinkerpop.gremlin.process.util.metric.Metrics;
-import org.apache.tinkerpop.gremlin.process.util.metric.StandardTraversalMetrics;
-import org.apache.tinkerpop.gremlin.process.util.metric.TraversalMetrics;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-
-import java.util.concurrent.TimeUnit;
-import java.util.function.Consumer;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.both;
-import static org.junit.Assert.*;
-
-/**
- * @author Bob Briody (http://bobbriody.com)
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class ProfileTest extends AbstractGremlinProcessTest {
- public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_out_out_profile();
-
- public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_repeat_both_profile();
-
- public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_sleep_sleep_profile();
-
- public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile();
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_out_out_modern_profile() {
- final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_out_out_profile();
- printTraversalForm(traversal);
-
- traversal.iterate();
-
- final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(TraversalMetrics.METRICS_KEY);
- traversalMetrics.toString(); // ensure no exceptions are thrown
-
- Metrics metrics = traversalMetrics.getMetrics(0);
- assertEquals(6, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertEquals(6, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- metrics = traversalMetrics.getMetrics(1);
- assertEquals(6, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- metrics = traversalMetrics.getMetrics(2);
- assertEquals(2, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- double totalPercentDuration = 0;
- for (Metrics m : traversalMetrics.getMetrics()) {
- totalPercentDuration += (Double) m.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY);
- }
- assertEquals(100, totalPercentDuration, 0.000001);
- }
-
-
- @Test
- @LoadGraphWith(GRATEFUL)
- public void g_V_out_out_grateful_profile() {
- final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_out_out_profile();
- printTraversalForm(traversal);
-
- traversal.iterate();
- final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(TraversalMetrics.METRICS_KEY);
- traversalMetrics.toString(); // ensure no exceptions are thrown
-
- Metrics metrics = traversalMetrics.getMetrics(0);
- assertEquals(808, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertEquals(808, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- metrics = traversalMetrics.getMetrics(1);
- assertEquals(8049, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- metrics = traversalMetrics.getMetrics(2);
- assertEquals(327370, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- double totalPercentDuration = 0;
- for (Metrics m : traversalMetrics.getMetrics()) {
- totalPercentDuration += (Double) m.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY);
- }
- assertEquals(100, totalPercentDuration, 0.000001);
- }
-
- @Test
- @LoadGraphWith(MODERN)
- @IgnoreEngine(TraversalEngine.Type.COMPUTER)
- public void g_V_sleep_sleep_profile() {
- final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_sleep_sleep_profile();
- printTraversalForm(traversal);
-
- traversal.iterate();
-
- assertEquals("There should be 6 steps in this traversal (counting injected profile steps).", 6, traversal.asAdmin().getSteps().size());
-
- TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(TraversalMetrics.METRICS_KEY);
- traversalMetrics.toString(); // ensure no exceptions are thrown
-
- // Grab the second (sideEffect{sleep}) step and check the times.
- Metrics metrics = traversalMetrics.getMetrics(1);
- // 6 elements w/ a 10ms sleep each = 60ms with 10ms for other computation
- assertTrue("Duration should be at least the length of the sleep: " + metrics.getDuration(TimeUnit.MILLISECONDS),
- metrics.getDuration(TimeUnit.MILLISECONDS) >= 60);
- assertTrue("Check that duration is within tolerant range: " + metrics.getDuration(TimeUnit.MILLISECONDS),
- metrics.getDuration(TimeUnit.MILLISECONDS) < 100);
-
- // 6 elements w/ a 5ms sleep each = 30ms plus 20ms for other computation
- metrics = traversalMetrics.getMetrics(2);
- assertTrue("Duration should be at least the length of the sleep: " + metrics.getDuration(TimeUnit.MILLISECONDS),
- metrics.getDuration(TimeUnit.MILLISECONDS) >= 30);
- assertTrue("Check that duration is within tolerant range: " + metrics.getDuration(TimeUnit.MILLISECONDS),
- metrics.getDuration(TimeUnit.MILLISECONDS) < 100);
-
- double totalPercentDuration = 0;
- for (Metrics m : traversalMetrics.getMetrics()) {
- totalPercentDuration += (Double) m.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY);
- }
- assertEquals(100, totalPercentDuration, 0.000001);
- }
-
- @Test
- @LoadGraphWith(MODERN)
- @IgnoreEngine(TraversalEngine.Type.COMPUTER)
- public void g_V_repeat_both_modern_profile() {
- final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_repeat_both_profile();
- printTraversalForm(traversal);
-
- traversal.iterate();
-
- final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(TraversalMetrics.METRICS_KEY);
- traversalMetrics.toString(); // ensure no exceptions are thrown
-
- Metrics metrics = traversalMetrics.getMetrics(0);
- assertEquals(6, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertEquals(6, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- metrics = traversalMetrics.getMetrics(1);
- assertEquals(72, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Count should be greater than traversers.", metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID) > metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Percent duration should be positive.", (Double) metrics.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY) > 0);
- assertTrue("Times should be positive.", metrics.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- // Test the nested global metrics of the repeat step
- Metrics vertexStepNestedInRepeat = (Metrics) metrics.getNested().toArray()[0];
- assertEquals(114, vertexStepNestedInRepeat.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, vertexStepNestedInRepeat.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Count should be greater than traversers.", vertexStepNestedInRepeat.getCount(TraversalMetrics.ELEMENT_COUNT_ID) > vertexStepNestedInRepeat.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Times should be positive.", vertexStepNestedInRepeat.getDuration(TimeUnit.MICROSECONDS) > 0);
-
- Metrics repeatEndStepNestedInRepeat = (Metrics) metrics.getNested().toArray()[1];
- assertEquals(72, repeatEndStepNestedInRepeat.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
- assertNotEquals(0, repeatEndStepNestedInRepeat.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Count should be greater than traversers.", repeatEndStepNestedInRepeat.getCount(TraversalMetrics.ELEMENT_COUNT_ID) > repeatEndStepNestedInRepeat.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertTrue("Times should be positive.", repeatEndStepNestedInRepeat.getDuration(TimeUnit.MICROSECONDS) > 0);
-
-
- double totalPercentDuration = 0;
- for (Metrics m : traversalMetrics.getMetrics()) {
- totalPercentDuration += (Double) m.getAnnotation(TraversalMetrics.PERCENT_DURATION_KEY);
- }
- assertEquals(100, totalPercentDuration, 0.000001);
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
- final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile();
- printTraversalForm(traversal);
-
- traversal.iterate();
-
- final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(TraversalMetrics.METRICS_KEY);
- traversalMetrics.toString(); // ensure no exceptions are thrown
-
- assertEquals("There should be 3 top-level metrics.", 3, traversalMetrics.getMetrics().size());
-
- Metrics metrics = traversalMetrics.getMetrics(0);
- assertEquals(6, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertEquals(6, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
-
- metrics = traversalMetrics.getMetrics(1);
- assertEquals(1, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID));
- assertEquals(1, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID));
-
- assertEquals("Metrics 1 should have 3 nested metrics.", 3, metrics.getNested().size());
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- @UseEngine(TraversalEngine.Type.COMPUTER)
- public static class Traversals extends ProfileTest {
-
- @Override
- public Traversal<Vertex, StandardTraversalMetrics> get_g_V_out_out_profile() {
- return (Traversal) g.V().out().out().profile();
- }
-
- @Override
- public Traversal<Vertex, StandardTraversalMetrics> get_g_V_repeat_both_profile() {
- return (Traversal) g.V().repeat(both()).times(3).profile();
- }
-
- @Override
- public Traversal<Vertex, StandardTraversalMetrics> get_g_V_sleep_sleep_profile() {
- return (Traversal) g.V().sideEffect(new Consumer<Traverser<Vertex>>() {
- @Override
- public void accept(final Traverser<Vertex> vertexTraverser) {
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).sideEffect(new Consumer<Traverser<Vertex>>() {
- @Override
- public void accept(final Traverser<Vertex> vertexTraverser) {
- try {
- Thread.sleep(5);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).profile();
- }
-
- @Override
- public Traversal<Vertex, StandardTraversalMetrics> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
- return (Traversal) g.V().has(__.in("created").count().is(1l)).values("name").profile();
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SackTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SackTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SackTest.java
deleted file mode 100644
index fdd7a53..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SackTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.IgnoreEngine;
-import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
-import org.apache.tinkerpop.gremlin.structure.Operator;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.tinkerpop.gremlin.util.function.HashMapSupplier;
-import org.junit.Test;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
-import static org.junit.Assert.*;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class SackTest extends AbstractGremlinProcessTest {
-
- public abstract Traversal<Vertex, Double> get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum();
-
- public abstract Traversal<Vertex, Float> get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack();
-
- public abstract Traversal<Vertex, Map> get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack();
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum() {
- final Traversal<Vertex, Double> traversal = get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum();
- assertEquals(3.5d, traversal.next(), 0.00001d);
- assertFalse(traversal.hasNext());
- }
-
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
- final Traversal<Vertex, Float> traversal = get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack();
- super.checkResults(Arrays.asList(2.0f, 1.4f), traversal);
- }
-
- @Test
- @LoadGraphWith(MODERN)
- @IgnoreEngine(TraversalEngine.Type.COMPUTER)
- public void g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack() {
- final Traversal<Vertex, Map> traversal = get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack();
- int counter = 0;
- while (traversal.hasNext()) {
- final Map map = traversal.next();
- assertEquals(1, map.size());
- assertTrue(map.containsKey("a"));
- assertTrue(map.get("a").equals("ripple") || map.get("a").equals("lop"));
- counter++;
- }
- assertEquals(2, counter);
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- @UseEngine(TraversalEngine.Type.COMPUTER)
- public static class Traversals extends SackTest {
- @Override
- public Traversal<Vertex, Double> get_g_V_withSackX0X_outE_sackXsum_weightX_inV_sack_sum() {
- return g.V().withSack(0.0f).outE().sack(Operator.sum, "weight").inV().sack().sum();
- }
-
- @Override
- public Traversal<Vertex, Float> get_g_V_withSackX0X_repeatXoutE_sackXsum_weightX_inVX_timesX2X_sack() {
- return g.V().withSack(0.0f).repeat(outE().sack(Operator.sum, "weight").inV()).times(2).sack();
- }
-
- @Override
- public Traversal<Vertex, Map> get_g_V_withSackXmap__map_cloneX_out_out_sackXmap_a_nameX_sack() {
- return g.V().<HashMap>withSack(HashMap::new, m -> (HashMap) m.clone()).out().out().<Map>sack((map, vertex) -> {
- map.put("a", vertex.value("name"));
- return map;
- }).sack();
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectCapTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectCapTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectCapTest.java
deleted file mode 100644
index a713ced..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectCapTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.T;
-import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-
-import java.util.Map;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
-import static org.junit.Assert.*;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class SideEffectCapTest extends AbstractGremlinProcessTest {
- public abstract Traversal<Vertex, Map<String, Long>> get_g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX();
-
- public abstract Traversal<Vertex, Map<String, Map<Object, Long>>> get_g_V_chooseXlabel_person__age_groupCountXaX__name_groupCountXbXX_capXa_bX();
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX() {
- final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX();
- printTraversalForm(traversal);
- Map<String, Long> map = traversal.next();
- assertFalse(traversal.hasNext());
- assertEquals(map.get("marko"), new Long(1l));
- assertEquals(map.get("vadas"), new Long(1l));
- assertEquals(map.get("peter"), new Long(1l));
- assertEquals(map.get("josh"), new Long(1l));
- assertEquals(map.size(), 4);
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_chooseXlabel_person__age_groupCountXaX__name_groupCountXbXX_capXa_bX() {
- final Traversal<Vertex, Map<String, Map<Object, Long>>> traversal = get_g_V_chooseXlabel_person__age_groupCountXaX__name_groupCountXbXX_capXa_bX();
- printTraversalForm(traversal);
- assertTrue(traversal.hasNext());
- Map<String, Map<Object, Long>> map = traversal.next();
- assertFalse(traversal.hasNext());
- assertEquals(2, map.size());
- assertTrue(map.containsKey("a"));
- assertTrue(map.containsKey("b"));
- assertEquals(4, map.get("a").size());
- assertEquals(2, map.get("b").size());
- assertEquals(1l, map.get("a").get(27).longValue());
- assertEquals(1l, map.get("a").get(29).longValue());
- assertEquals(1l, map.get("a").get(32).longValue());
- assertEquals(1l, map.get("a").get(35).longValue());
- assertEquals(1l, map.get("b").get("ripple").longValue());
- assertEquals(1l, map.get("b").get("lop").longValue());
- assertFalse(traversal.hasNext());
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- @UseEngine(TraversalEngine.Type.COMPUTER)
- public static class Traversals extends SideEffectCapTest {
- @Override
- public Traversal<Vertex, Map<String, Long>> get_g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX() {
- return g.V().has("age").groupCount("a").by("name").out().cap("a");
- }
-
- @Override
- public Traversal<Vertex, Map<String, Map<Object, Long>>> get_g_V_chooseXlabel_person__age_groupCountXaX__name_groupCountXbXX_capXa_bX() {
- return g.V().choose(has(T.label, "person"),
- values("age").groupCount("a"),
- values("name").groupCount("b")).cap("a", "b");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectTest.java
deleted file mode 100644
index d60abaf..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SideEffectTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.junit.Assert.*;
-
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public abstract class SideEffectTest extends AbstractGremlinTest {
- public abstract Traversal<Vertex, String> get_g_VX1X_sideEffectXstore_aX_name(final Object v1Id);
-
- public abstract Traversal<Vertex, String> get_g_VX1X_out_sideEffectXincr_cX_name(final Object v1Id);
-
- public abstract Traversal<Vertex, String> get_g_VX1X_out_sideEffectXX_name(final Object v1Id);
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_VX1X_sideEffectXstore_aX_name() {
- final Traversal<Vertex, String> traversal = get_g_VX1X_sideEffectXstore_aX_name(convertToVertexId("marko"));
- printTraversalForm(traversal);
- assertEquals(traversal.next(), "marko");
- assertFalse(traversal.hasNext());
- assertEquals(convertToVertexId("marko"), traversal.asAdmin().getSideEffects().<List<Vertex>>get("a").get(0).id());
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_VX1X_out_sideEffectXincr_cX_name() {
- final Traversal<Vertex, String> traversal = get_g_VX1X_out_sideEffectXincr_cX_name(convertToVertexId("marko"));
- printTraversalForm(traversal);
- assert_g_v1_out_sideEffectXincr_cX_valueXnameX(traversal);
- assertEquals(new Integer(3), traversal.asAdmin().getSideEffects().<List<Integer>>get("c").get(0));
- }
-
- private void assert_g_v1_out_sideEffectXincr_cX_valueXnameX(final Iterator<String> traversal) {
- final List<String> names = new ArrayList<>();
- while (traversal.hasNext()) {
- names.add(traversal.next());
- }
- assertEquals(3, names.size());
- assertTrue(names.contains("josh"));
- assertTrue(names.contains("lop"));
- assertTrue(names.contains("vadas"));
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_VX1X_out_sideEffectXX_name() {
- final Traversal<Vertex, String> traversal = get_g_VX1X_out_sideEffectXX_name(convertToVertexId("marko"));
- printTraversalForm(traversal);
- assert_g_v1_out_sideEffectXincr_cX_valueXnameX(traversal);
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- public static class Traversals extends SideEffectTest {
-
- @Override
- public Traversal<Vertex, String> get_g_VX1X_sideEffectXstore_aX_name(final Object v1Id) {
- return g.V(v1Id).withSideEffect("a", ArrayList::new).sideEffect(traverser -> {
- traverser.<List>sideEffects("a").clear();
- traverser.<List<Vertex>>sideEffects("a").add(traverser.get());
- }).values("name");
- }
-
- @Override
- public Traversal<Vertex, String> get_g_VX1X_out_sideEffectXincr_cX_name(final Object v1Id) {
- return g.V(v1Id).withSideEffect("c", () -> {
- final List<Integer> list = new ArrayList<>();
- list.add(0);
- return list;
- }).out().sideEffect(traverser -> {
- Integer temp = traverser.<List<Integer>>sideEffects("c").get(0);
- traverser.<List<Integer>>sideEffects("c").clear();
- traverser.<List<Integer>>sideEffects("c").add(temp + 1);
- }).values("name");
- }
-
- @Override
- public Traversal<Vertex, String> get_g_VX1X_out_sideEffectXX_name(final Object v1Id) {
- return g.V(v1Id).out().sideEffect(traverser -> {
- }).values("name");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/StoreTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/StoreTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/StoreTest.java
deleted file mode 100644
index 8f1f8cf..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/StoreTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.process.util.BulkSet;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.tinkerpop.gremlin.util.function.HashSetSupplier;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.Set;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.inE;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.outE;
-import static org.junit.Assert.*;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class StoreTest extends AbstractGremlinProcessTest {
- public abstract Traversal<Vertex, Collection> get_g_V_storeXaX_byXnameX_out_capXaX();
-
- public abstract Traversal<Vertex, Collection> get_g_VX1X_storeXaX_byXnameX_out_storeXaX_byXnameX_name_capXaX(final Object v1Id);
-
- public abstract Traversal<Vertex, Set<String>> get_g_V_withSideEffectXa_setX_both_name_storeXaX_capXaX();
-
- public abstract Traversal<Vertex, Collection> get_g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX_capXaX();
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_storeXa_nameX_out_capXaX() {
- final Traversal<Vertex, Collection> traversal = get_g_V_storeXaX_byXnameX_out_capXaX();
- printTraversalForm(traversal);
- Collection names = traversal.next();
- assertEquals(6, names.size());
- assertTrue(names.contains("marko"));
- assertTrue(names.contains("josh"));
- assertTrue(names.contains("peter"));
- assertTrue(names.contains("lop"));
- assertTrue(names.contains("ripple"));
- assertTrue(names.contains("vadas"));
- assertFalse(traversal.hasNext());
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_VX1X_storeXaX_byXnameX_out_storeXaX_byXnameX_name_capXaX() {
- final Traversal<Vertex, Collection> traversal = get_g_VX1X_storeXaX_byXnameX_out_storeXaX_byXnameX_name_capXaX(convertToVertexId("marko"));
- printTraversalForm(traversal);
- Collection names = traversal.next();
- assertEquals(4, names.size());
- assertTrue(names.contains("marko"));
- assertTrue(names.contains("josh"));
- assertTrue(names.contains("vadas"));
- assertTrue(names.contains("lop"));
- assertFalse(traversal.hasNext());
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_withXa_setX_both_name_storeXaX() {
- final Traversal<Vertex, Set<String>> traversal = get_g_V_withSideEffectXa_setX_both_name_storeXaX_capXaX();
- printTraversalForm(traversal);
- final Set<String> names = traversal.next();
- assertFalse(traversal.hasNext());
- assertFalse(names instanceof BulkSet);
- assertEquals(6, names.size());
- assertTrue(names.contains("marko"));
- assertTrue(names.contains("vadas"));
- assertTrue(names.contains("josh"));
- assertTrue(names.contains("lop"));
- assertTrue(names.contains("ripple"));
- assertTrue(names.contains("peter"));
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX() {
- final Traversal<Vertex, Collection> traversal = get_g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX_capXaX();
- printTraversalForm(traversal);
- assertTrue(traversal.hasNext());
- final Collection store = traversal.next();
- assertFalse(traversal.hasNext());
- assertEquals(8, store.size());
- assertTrue(store.contains(0L));
- assertTrue(store.contains(1L));
- assertTrue(store.contains(2L));
- assertTrue(store.contains(1.0d));
- assertFalse(store.isEmpty());
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- @UseEngine(TraversalEngine.Type.COMPUTER)
- public static class Traversals extends StoreTest {
- @Override
- public Traversal<Vertex, Collection> get_g_V_storeXaX_byXnameX_out_capXaX() {
- return g.V().store("a").by("name").out().cap("a");
- }
-
- @Override
- public Traversal<Vertex, Collection> get_g_VX1X_storeXaX_byXnameX_out_storeXaX_byXnameX_name_capXaX(final Object v1Id) {
- return g.V(v1Id).store("a").by("name").out().store("a").by("name").values("name").cap("a");
- }
-
- @Override
- public Traversal<Vertex, Set<String>> get_g_V_withSideEffectXa_setX_both_name_storeXaX_capXaX() {
- return g.V().withSideEffect("a", HashSetSupplier.instance()).both().<String>values("name").store("a").cap("a");
- }
-
- @Override
- public Traversal<Vertex, Collection> get_g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX_capXaX() {
- return g.V().store("a").by(outE("created").count()).out().out().store("a").by(inE("created").values("weight").sum()).cap("a");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SubgraphTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SubgraphTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SubgraphTest.java
deleted file mode 100644
index 537f4fa..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/SubgraphTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.FeatureRequirement;
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.structure.Graph;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.commons.configuration.Configuration;
-import org.junit.Test;
-
-import java.util.Arrays;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
-import static org.apache.tinkerpop.gremlin.structure.Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES;
-import static org.apache.tinkerpop.gremlin.structure.Graph.Features.ElementFeatures.FEATURE_USER_SUPPLIED_IDS;
-import static org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public abstract class SubgraphTest extends AbstractGremlinProcessTest {
- public abstract Traversal<Vertex, Graph> get_g_V_withSideEffectXsgX_outEXknowsX_subgraphXsgX_name_capXsgX(final Object v1Id, final Graph subgraph);
-
- public abstract Traversal<Vertex, String> get_g_V_withSideEffectXsgX_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup(final Graph subgraph);
-
- @Test
- @LoadGraphWith(MODERN)
- @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = FEATURE_ADD_VERTICES)
- @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = FEATURE_ADD_EDGES)
- @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = FEATURE_USER_SUPPLIED_IDS)
- @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = FEATURE_USER_SUPPLIED_IDS)
- public void g_V_withSideEffectXsgX_outEXknowsX_subgraphXsgX_name_capXsgX() throws Exception {
- final Configuration config = graphProvider.newGraphConfiguration("subgraph", this.getClass(), name.getMethodName());
- graphProvider.clear(config);
- Graph subgraph = graphProvider.openTestGraph(config);
- /////
- Traversal<Vertex, Graph> traversal = get_g_V_withSideEffectXsgX_outEXknowsX_subgraphXsgX_name_capXsgX(convertToVertexId("marko"), subgraph);
- printTraversalForm(traversal);
- subgraph = traversal.next();
- assertVertexEdgeCounts(3, 2).accept(subgraph);
- subgraph.edges().forEachRemaining(e -> {
- assertEquals("knows", e.label());
- assertEquals("marko", e.outVertex().values("name").next());
- assertEquals(new Integer(29), e.outVertex().<Integer>values("age").next());
- assertEquals("person", e.outVertex().label());
-
- final String name = e.inVertex().<String>values("name").next();
- if (name.equals("vadas"))
- assertEquals(0.5d, e.value("weight"), 0.0001d);
- else if (name.equals("josh"))
- assertEquals(1.0d, e.value("weight"), 0.0001d);
- else
- fail("There's a vertex present that should not be in the subgraph");
- });
- graphProvider.clear(subgraph, config);
- }
-
- @Test
- @LoadGraphWith(MODERN)
- @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = FEATURE_ADD_VERTICES)
- @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = FEATURE_ADD_EDGES)
- @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = FEATURE_USER_SUPPLIED_IDS)
- @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = FEATURE_USER_SUPPLIED_IDS)
- public void g_V_withSideEffectXsgX_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup() throws Exception {
- final Configuration config = graphProvider.newGraphConfiguration("subgraph", this.getClass(), name.getMethodName());
- graphProvider.clear(config);
- final Graph subgraph = graphProvider.openTestGraph(config);
- /////
- Traversal<Vertex, String> traversal = get_g_V_withSideEffectXsgX_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup(subgraph);
- printTraversalForm(traversal);
- checkResults(Arrays.asList("marko", "josh", "peter"), traversal);
- final Graph subGraph = traversal.asAdmin().getSideEffects().get("sg");
- assertVertexEdgeCounts(5, 4).accept(subGraph);
-
- graphProvider.clear(subgraph, config);
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- public static class Traversals extends SubgraphTest {
-
- @Override
- public Traversal<Vertex, Graph> get_g_V_withSideEffectXsgX_outEXknowsX_subgraphXsgX_name_capXsgX(final Object v1Id, final Graph subgraph) {
- return g.V(v1Id).withSideEffect("sg", () -> subgraph).outE("knows").subgraph("sg").values("name").cap("sg");
- }
-
- @Override
- public Traversal<Vertex, String> get_g_V_withSideEffectXsgX_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup(final Graph subgraph) {
- return g.V().withSideEffect("sg", () -> subgraph).repeat(bothE("created").subgraph("sg").outV()).times(5).<String>values("name").dedup();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/TreeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/TreeTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/TreeTest.java
deleted file mode 100644
index 7f46632..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/TreeTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.*;
-import org.apache.tinkerpop.gremlin.process.graph.util.Tree;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.junit.Assert.*;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public abstract class TreeTest extends AbstractGremlinProcessTest {
-
- public abstract Traversal<Vertex, Tree> get_g_V_out_out_tree_byXidX();
-
- public abstract Traversal<Vertex, Tree> get_g_V_out_out_treeXaX_byXidX_capXaX();
-
- public abstract Traversal<Vertex, Tree> get_g_V_out_out_tree();
-
- public abstract Traversal<Vertex, Tree> get_g_V_out_out_treeXaX_capXaX();
-
- public abstract Traversal<Vertex, Tree> get_g_VX1X_out_out_tree_byXnameX(final Object v1Id);
-
- public abstract Traversal<Vertex, Tree> get_g_VX1X_out_out_treeXaX_byXnameX_both_both_capXaX(final Object v1Id);
-
- @Test
- @IgnoreEngine(TraversalEngine.Type.COMPUTER)
- @LoadGraphWith(MODERN)
- public void g_VX1X_out_out_tree_byXnameX() {
- List<Traversal<Vertex, Tree>> traversals = Arrays.asList(
- get_g_VX1X_out_out_tree_byXnameX(convertToVertexId("marko")),
- get_g_VX1X_out_out_treeXaX_byXnameX_both_both_capXaX(convertToVertexId("marko")));
- traversals.forEach(traversal -> {
- printTraversalForm(traversal);
- final Tree tree = traversal.next();
- assertFalse(traversal.hasNext());
- assertEquals(1, tree.size());
- assertTrue(tree.containsKey("marko"));
- assertEquals(1, ((Map) tree.get("marko")).size());
- assertTrue(((Map) tree.get("marko")).containsKey("josh"));
- assertTrue(((Map) ((Map) tree.get("marko")).get("josh")).containsKey("lop"));
- assertTrue(((Map) ((Map) tree.get("marko")).get("josh")).containsKey("ripple"));
- });
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_out_out_tree_byXidX() {
- List<Traversal<Vertex, Tree>> traversals = Arrays.asList(get_g_V_out_out_tree_byXidX(), get_g_V_out_out_treeXaX_byXidX_capXaX());
- traversals.forEach(traversal -> {
- printTraversalForm(traversal);
- final Tree tree = traversal.next();
- assertFalse(traversal.hasNext());
- assertEquals(1, tree.size());
- assertTrue(tree.containsKey(convertToVertexId("marko")));
- assertEquals(1, ((Map) tree.get(convertToVertexId("marko"))).size());
- assertTrue(((Map) tree.get(convertToVertexId("marko"))).containsKey(convertToVertexId("josh")));
- assertTrue(((Map) ((Map) tree.get(convertToVertexId("marko"))).get(convertToVertexId("josh"))).containsKey(convertToVertexId("lop")));
- assertTrue(((Map) ((Map) tree.get(convertToVertexId("marko"))).get(convertToVertexId("josh"))).containsKey(convertToVertexId("ripple")));
- });
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_out_out_treeXaX_capXaX() {
- List<Traversal<Vertex, Tree>> traversals = Arrays.asList(get_g_V_out_out_tree(), get_g_V_out_out_treeXaX_capXaX());
- traversals.forEach(traversal -> {
- printTraversalForm(traversal);
- final Tree tree = traversal.next();
- assertFalse(traversal.hasNext());
- assertEquals(1, tree.size());
- assertTrue(tree.containsKey(convertToVertex(graph, "marko")));
- assertEquals(1, ((Map) tree.get(convertToVertex(graph, "marko"))).size());
- assertTrue(((Map) tree.get(convertToVertex(graph, "marko"))).containsKey(convertToVertex(graph, "josh")));
- assertTrue(((Map) ((Map) tree.get(convertToVertex(graph, "marko"))).get(convertToVertex(graph, "josh"))).containsKey(convertToVertex(graph, "lop")));
- assertTrue(((Map) ((Map) tree.get(convertToVertex(graph, "marko"))).get(convertToVertex(graph, "josh"))).containsKey(convertToVertex(graph, "ripple")));
- });
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- @UseEngine(TraversalEngine.Type.COMPUTER)
- public static class Traversals extends TreeTest {
- @Override
- public Traversal<Vertex, Tree> get_g_VX1X_out_out_tree_byXnameX(final Object v1Id) {
- return (Traversal) g.V(v1Id).out().out().tree().by("name");
- }
-
- @Override
- public Traversal<Vertex, Tree> get_g_VX1X_out_out_treeXaX_byXnameX_both_both_capXaX(final Object v1Id) {
- return g.V(v1Id).out().out().tree("a").by("name").both().both().cap("a");
- }
-
- @Override
- public Traversal<Vertex, Tree> get_g_V_out_out_tree_byXidX() {
- return (Traversal) g.V().out().out().tree().by(T.id);
- }
-
- @Override
- public Traversal<Vertex, Tree> get_g_V_out_out_treeXaX_byXidX_capXaX() {
- return (Traversal) g.V().out().out().tree("a").by(T.id).cap("a");
- }
-
- @Override
- public Traversal<Vertex, Tree> get_g_V_out_out_tree() {
- return (Traversal) g.V().out().out().tree();
- }
-
- @Override
- public Traversal<Vertex, Tree> get_g_V_out_out_treeXaX_capXaX() {
- return (Traversal) g.V().out().out().tree("a").cap("a");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/util/TraversalSideEffectsTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/util/TraversalSideEffectsTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/util/TraversalSideEffectsTest.java
deleted file mode 100644
index f5bdefc..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/util/TraversalSideEffectsTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.step.util;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.TraversalSideEffects;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
-import org.junit.Test;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class TraversalSideEffectsTest extends AbstractGremlinProcessTest {
- public abstract TraversalSideEffects get_g_V_asAdmin_getSideEffects();
-
- @Test
- @LoadGraphWith(MODERN)
- public void g_V_sideEffects() {
- final TraversalSideEffects sideEffects = get_g_V_asAdmin_getSideEffects();
- try {
- assertFalse(sideEffects.get("a"));
- } catch (IllegalArgumentException e) {
- assertEquals(TraversalSideEffects.Exceptions.sideEffectDoesNotExist("a").getMessage(), e.getMessage());
- }
- assertEquals(StringFactory.traversalSideEffectsString(sideEffects), sideEffects.toString());
- }
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- public static class Traversals extends TraversalSideEffectsTest {
- @Override
- public TraversalSideEffects get_g_V_asAdmin_getSideEffects() {
- return g.V().asAdmin().getSideEffects();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategyTest.java
deleted file mode 100644
index 4268ba6..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/strategy/TraversalVerificationStrategyTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.graph.traversal.strategy;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class TraversalVerificationStrategyTest extends AbstractGremlinProcessTest {
-
- @UseEngine(TraversalEngine.Type.STANDARD)
- public static class StandardTraversals extends TraversalVerificationStrategyTest {
- @Test
- @LoadGraphWith(MODERN)
- public void shouldAllowNestedGlobalTraversalToHaveBarriers() {
- try {
- g.V().values("age").union(max(), min(), sum()).iterate();
- } catch (IllegalStateException e) {
- fail("Nested global traversals can have barrier steps on STANDARD:" + e.getMessage());
- }
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void shouldAllowMidTraversalBarriersOnComputer() {
- try {
- g.V().count().sum().iterate();
- } catch (IllegalStateException e) {
- fail("Mid-traversal barrier steps are OK on STANDARD: " + e.getMessage());
- }
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void shouldAllowLocalTraversalsToLeaveTheStarGraphOnComputer() {
- try {
- g.V().local(out().out()).iterate();
- } catch (IllegalStateException e) {
- fail("Local traversals leaving the star-graph are OK on STANDARD: " + e.getMessage());
- }
- }
- }
-
- @UseEngine(TraversalEngine.Type.COMPUTER)
- public static class ComputerTraversals extends TraversalVerificationStrategyTest {
-
- @Test
- @LoadGraphWith(MODERN)
- public void shouldNotAllowNestedGlobalTraversalToHaveBarriers() {
- try {
- final GraphTraversal t = g.V().values("age").union(max(), min(), sum()).iterate();
- fail("Nested global traversals should not be allowed to contain barriers (COMPUTER): " + t);
- } catch (IllegalStateException e) {
- assertTrue(true);
- }
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void shouldNotAllowMidTraversalBarriersOnComputer() {
- try {
- final GraphTraversal t = g.V().count().sum().iterate();
- fail("Mid-traversal barrier steps are not allowed (COMPUTER): " + t);
- } catch (IllegalStateException e) {
- assertTrue(true);
- }
-
- try {
- final GraphTraversal t = g.V().count().sum().map(x -> x.get() * 19).iterate();
- fail("Mid-traversal barrier steps are not allowed (COMPUTER): " + t);
- } catch (IllegalStateException e) {
- assertTrue(true);
- }
- }
-
- @Test
- @LoadGraphWith(MODERN)
- public void shouldNotAllowLocalTraversalsToLeaveTheStarGraphOnComputer() {
- try {
- final GraphTraversal t = g.V().local(out().out()).iterate();
- fail("Local traversals should not be allowed to leave the star-graph (COMPUTER): " + t);
- } catch (IllegalStateException e) {
- assertTrue(true);
- }
-
- try {
- final GraphTraversal t = g.V().local(out().values("name")).iterate();
- fail("Local traversals should not be allowed to leave the star-graph (COMPUTER): " + t);
- } catch (IllegalStateException e) {
- assertTrue(true);
- }
-
- try {
- g.V().local(outE().values("weight")).iterate();
- g.V().local(out().id()).iterate();
- g.V().local(outE().inV()).iterate();
- } catch (IllegalStateException e) {
- fail("Local traversals on the star-graph are OK on COMPUTER: " + e.getMessage());
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
index 9e39071..16b1fc3 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
@@ -22,11 +22,9 @@ import org.apache.tinkerpop.gremlin.ExceptionCoverage;
import org.apache.tinkerpop.gremlin.FeatureRequirement;
import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.TraversalEngine;
import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversal;
-import org.apache.tinkerpop.gremlin.process.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
import org.apache.tinkerpop.gremlin.structure.Contains;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Transaction;
@@ -41,7 +39,7 @@ import java.util.Random;
import java.util.Set;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*;
import static org.apache.tinkerpop.gremlin.structure.Graph.Features.GraphFeatures.FEATURE_TRANSACTIONS;
import static org.junit.Assert.*;
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversalTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversalTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversalTest.java
deleted file mode 100644
index 7218ff2..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversalTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-package org.apache.tinkerpop.gremlin.process.traversal;
-
-import org.apache.tinkerpop.gremlin.process.graph.traversal.DefaultGraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.DefaultTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
-import org.apache.tinkerpop.gremlin.structure.Graph;
-import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public class DefaultTraversalTest {
-
- @Test
- public void shouldCloneTraversalCorrectly() throws CloneNotSupportedException {
- final DefaultGraphTraversal<?, ?> original = new DefaultGraphTraversal<>(EmptyGraph.instance());
- original.out().groupCount("m").values("name").count();
- final DefaultTraversal<?, ?> clone = (DefaultTraversal) original.clone();
- assertNotEquals(original.hashCode(), clone.hashCode());
- assertEquals(original.getSteps().size(), clone.getSteps().size());
-
- for (int i = 0; i < original.steps.size(); i++) {
- assertNotEquals(original.getSteps().get(i), clone.getSteps().get(i));
- }
- assertNotEquals(original.sideEffects, clone.sideEffects);
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSideEffectsTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSideEffectsTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSideEffectsTest.java
new file mode 100644
index 0000000..16bf2fe
--- /dev/null
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSideEffectsTest.java
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal;
+
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
+import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import org.junit.Test;
+
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public abstract class TraversalSideEffectsTest extends AbstractGremlinProcessTest {
+ public abstract TraversalSideEffects get_g_V_asAdmin_getSideEffects();
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_sideEffects() {
+ final TraversalSideEffects sideEffects = get_g_V_asAdmin_getSideEffects();
+ try {
+ assertFalse(sideEffects.get("a"));
+ } catch (IllegalArgumentException e) {
+ assertEquals(TraversalSideEffects.Exceptions.sideEffectDoesNotExist("a").getMessage(), e.getMessage());
+ }
+ assertEquals(StringFactory.traversalSideEffectsString(sideEffects), sideEffects.toString());
+ }
+
+ @UseEngine(TraversalEngine.Type.STANDARD)
+ public static class Traversals extends TraversalSideEffectsTest {
+ @Override
+ public TraversalSideEffects get_g_V_asAdmin_getSideEffects() {
+ return g.V().asAdmin().getSideEffects();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchTest.java
new file mode 100644
index 0000000..4149fb5
--- /dev/null
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/BranchTest.java
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal.step.branch;
+
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
+import org.apache.tinkerpop.gremlin.process.IgnoreEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.junit.Test;
+
+import java.util.Arrays;
+
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.label;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.values;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public abstract class BranchTest extends AbstractGremlinProcessTest {
+
+ public abstract Traversal<Vertex, Object> get_g_V_branchXlabel_eq_person__a_bX_optionXa__ageX_optionXb__langX_optionXb__nameX();
+
+ public abstract Traversal<Vertex, Object> get_g_V_branchXlabelX_optionXperson__ageX_optionXsoftware__langX_optionXsoftware__nameX();
+
+ @Test
+ @LoadGraphWith(MODERN)
+ @IgnoreEngine(TraversalEngine.Type.COMPUTER)
+ public void g_V_branchXlabel_eq_person__a_bX_optionXa__ageX_optionXb__langX_optionXb__nameX() {
+ Traversal<Vertex, Object> traversal = get_g_V_branchXlabel_eq_person__a_bX_optionXa__ageX_optionXb__langX_optionXb__nameX();
+ printTraversalForm(traversal);
+ checkResults(Arrays.asList("java", "java", "lop", "ripple", 29, 27, 32, 35), traversal);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_branchXlabelX_optionXperson__ageX_optionXsoftware__langX_optionXsoftware__nameX() {
+ Traversal<Vertex, Object> traversal = get_g_V_branchXlabelX_optionXperson__ageX_optionXsoftware__langX_optionXsoftware__nameX();
+ printTraversalForm(traversal);
+ checkResults(Arrays.asList("java", "java", "lop", "ripple", 29, 27, 32, 35), traversal);
+ }
+
+ @UseEngine(TraversalEngine.Type.STANDARD)
+ @UseEngine(TraversalEngine.Type.COMPUTER)
+ public static class Traversals extends BranchTest {
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_branchXlabel_eq_person__a_bX_optionXa__ageX_optionXb__langX_optionXb__nameX() {
+ return g.V().branch(v -> v.get().label().equals("person") ? "a" : "b")
+ .option("a", values("age"))
+ .option("b", values("lang"))
+ .option("b", values("name"));
+ }
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_branchXlabelX_optionXperson__ageX_optionXsoftware__langX_optionXsoftware__nameX() {
+ return g.V().branch(label().is("person").count())
+ .option(1L, values("age"))
+ .option(0L, values("lang"))
+ .option(0L, values("name"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4c97e964/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/ChooseTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/ChooseTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/ChooseTest.java
new file mode 100644
index 0000000..be5e192
--- /dev/null
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/ChooseTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+package org.apache.tinkerpop.gremlin.process.traversal.step.branch;
+
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.MapHelper;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ * @author Joshua Shinavier (http://fortytwo.net)
+ */
+public abstract class ChooseTest extends AbstractGremlinProcessTest {
+
+ public abstract Traversal<Vertex, Object> get_g_V_chooseXout_countX_optionX2L__nameX_optionX3L__valueMapX();
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_chooseXout_countX_optionX2L__nameX_optionX3L__valueMapX() {
+ final Traversal<Vertex, Object> traversal = get_g_V_chooseXout_countX_optionX2L__nameX_optionX3L__valueMapX();
+ printTraversalForm(traversal);
+ Map<String, Long> counts = new HashMap<>();
+ int counter = 0;
+ while (traversal.hasNext()) {
+ MapHelper.incr(counts, traversal.next().toString(), 1l);
+ counter++;
+ }
+ assertFalse(traversal.hasNext());
+ assertEquals(2, counter);
+ assertEquals(2, counts.size());
+ assertEquals(Long.valueOf(1), counts.get("{name=[marko], age=[29]}"));
+ assertEquals(Long.valueOf(1), counts.get("josh"));
+ }
+
+ @UseEngine(TraversalEngine.Type.STANDARD)
+ @UseEngine(TraversalEngine.Type.COMPUTER)
+ public static class Traversals extends ChooseTest {
+
+ @Override
+ public Traversal<Vertex, Object> get_g_V_chooseXout_countX_optionX2L__nameX_optionX3L__valueMapX() {
+ return g.V().choose(out().count())
+ .option(2L, values("name"))
+ .option(3L, valueMap());
+ }
+ }
+}
\ No newline at end of file