You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2018/03/21 20:02:26 UTC
[23/27] tinkerpop git commit: Added new tests as suggested by @okram.
Added new tests as suggested by @okram.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/dabaaf30
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/dabaaf30
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/dabaaf30
Branch: refs/heads/TINKERPOP-1682
Commit: dabaaf302fe0a622c6d22cb91432ad55c0685861
Parents: e3dc8ff
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Mon Jun 19 18:24:39 2017 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Mar 21 13:01:46 2018 -0700
----------------------------------------------------------------------
CHANGELOG.asciidoc | 2 +-
.../process/traversal/step/map/OrderTest.java | 42 ++++++++++++++++++++
.../traversal/step/sideEffect/GroupTest.java | 40 +++++++++++++++++++
3 files changed, 83 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/dabaaf30/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 0062809..d639d4d 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -110,8 +110,8 @@ This release also includes changes from <<release-3-2-6, 3.2.6>>.
* Removed access to previously deprecated `CoreGremlinPlugin#INSTANCE` field.
* `gremlin.sh` and `gremln.bat` no longer support the option to pass a script as an argument for execution mode without using the `-i` option.
* Graphite and Ganglia are no longer packaged with the Gremlin Server distribution.
-* `TransactionException` is no longer a class of `AbstractTransaction` and it extends `RuntimeException`.
* Included an ellipse on long property names that are truncated.
+* Added `TraversalParent.replaceTraversal()` which can replace a direct child traversal.
* Added `ByModulatorOptimizationStrategy` which replaces certain standard traversals w/ optimized traversals (e.g. `TokenTraversal`).
* Renamed `RangeByIsCountStrategy` to `CountStrategy`.
* Added more specific typing to various `__` traversal steps. E.g. `<A,Vertex>out()` is `<Vertex,Vertex>out()`.
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/dabaaf30/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
index bbf63ef..a44ac5a 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
@@ -29,6 +29,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.structure.Column;
+import org.apache.tinkerpop.gremlin.structure.Property;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.Test;
@@ -100,6 +101,10 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Map.Entry<String, Number>> get_g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX();
+ public abstract Traversal<Vertex, Vertex> get_g_V_order_byXlabelX();
+
+ public abstract Traversal<Vertex, Vertex> get_g_V_order_byXlabel_decrX();
+
@Test
@LoadGraphWith(MODERN)
public void g_V_name_order() {
@@ -400,6 +405,21 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
entry = iterator.next();
assertEquals("marko", entry.getKey());
assertEquals(1.9, entry.getValue().doubleValue(), 0.0001);
+
+ public void g_V_order_byXlabelX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_order_byXlabelX();
+ printTraversalForm(traversal);
+ for (int i = 0; i < 4; i++) {
+ assertTrue(traversal.hasNext());
+ final Vertex v = traversal.next();
+ assertEquals("person", v.label());
+ }
+ for (int i = 0; i < 2; i++) {
+ assertTrue(traversal.hasNext());
+ final Vertex v = traversal.next();
+ assertEquals("software", v.label());
+ }
+ assertFalse(traversal.hasNext());
}
@Test
@@ -420,6 +440,20 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
entry = traversal.next();
assertEquals("vadas", entry.getKey());
assertEquals(0.0, entry.getValue().doubleValue(), 0.0001);
+
+ public void g_V_order_byXlabel_decrX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_order_byXlabel_decrX();
+ printTraversalForm(traversal);
+ for (int i = 0; i < 2; i++) {
+ assertTrue(traversal.hasNext());
+ final Vertex v = traversal.next();
+ assertEquals("software", v.label());
+ }
+ for (int i = 0; i < 4; i++) {
+ assertTrue(traversal.hasNext());
+ final Vertex v = traversal.next();
+ assertEquals("person", v.label());
+ }
assertFalse(traversal.hasNext());
}
@@ -542,6 +576,14 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
@Override
public Traversal<Vertex, Map.Entry<String, Number>> get_g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_decrX() {
return g.V().hasLabel("person").group().by("name").by(outE().values("weight").sum()).<Map.Entry<String, Number>>unfold().order().by(Column.values, Order.decr);
+
+ public Traversal<Vertex, Vertex> get_g_V_order_byXlabelX() {
+ return g.V().order().by(__.label());
+ }
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_order_byXlabel_decrX() {
+ return g.V().order().by(__.label(), Order.decr);
}
}
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/dabaaf30/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
index 3e1e53b..91c3eb1 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
@@ -99,6 +99,10 @@ public abstract class GroupTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Map<String, List<Object>>> get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX(final Map<String, List<Object>> m);
+ public abstract Traversal<Vertex, Map<String, Long>> get_g_V_group_byXlabelX_byXlabel_countX();
+
+ public abstract Traversal<Vertex, Map<String, Long>> get_g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX();
+
@Test
@LoadGraphWith(MODERN)
public void g_V_group_byXnameX() {
@@ -488,6 +492,32 @@ public abstract class GroupTest extends AbstractGremlinProcessTest {
checkSideEffects(traversal.asAdmin().getSideEffects(), "a", HashMap.class);
}
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_group_byXlabelX_byXlabel_countX() {
+ final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_group_byXlabelX_byXlabel_countX();
+ printTraversalForm(traversal);
+ final Map<String, Long> map = traversal.next();
+ assertEquals(2, map.size());
+ assertTrue(map.containsKey("person"));
+ assertTrue(map.containsKey("software"));
+ assertEquals(4L, map.get("person").longValue());
+ assertEquals(2L, map.get("software").longValue());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX() {
+ final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX();
+ printTraversalForm(traversal);
+ final Map<String, Long> map = traversal.next();
+ assertEquals(2, map.size());
+ assertTrue(map.containsKey("person"));
+ assertTrue(map.containsKey("software"));
+ assertEquals(4L, map.get("person").longValue());
+ assertEquals(2L, map.get("software").longValue());
+ }
+
public static class Traversals extends GroupTest {
@Override
@@ -594,5 +624,15 @@ public abstract class GroupTest extends AbstractGremlinProcessTest {
public Traversal<Vertex, Map<String, List<Object>>> get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX(final Map<String, List<Object>> m) {
return g.withSideEffect("a", m).V().group("a").by("name").by(outE().label().fold()).cap("a");
}
+
+ @Override
+ public Traversal<Vertex, Map<String, Long>> get_g_V_group_byXlabelX_byXlabel_countX() {
+ return g.V().<String, Long>group().by(__.label()).by(__.label().count());
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Long>> get_g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX() {
+ return g.V().group("m").by(__.label()).by(__.label().count()).cap("m");
+ }
}
}