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/02/17 22:41:26 UTC
[2/5] incubator-tinkerpop git commit: Added more `select()` tests
that verify that the latest changes on `SelectStep` work as expected.
Added more `select()` tests that verify that the latest changes on `SelectStep` work as expected.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/b61e0ee9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/b61e0ee9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/b61e0ee9
Branch: refs/heads/master
Commit: b61e0ee9c7f9ca4831b4b286bbfbde33c9d5b0e0
Parents: 22e2fec
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Feb 17 22:24:35 2015 +0100
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue Feb 17 22:24:35 2015 +0100
----------------------------------------------------------------------
.../traversal/step/map/GroovySelectTest.groovy | 24 +++++
.../graph/traversal/step/map/SelectTest.java | 94 ++++++++++++++++++--
.../tinkergraph/structure/TinkerGraphTest.java | 3 -
3 files changed, 113 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b61e0ee9/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
index 319bca7..de0e5cd 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
@@ -20,6 +20,7 @@ package org.apache.tinkerpop.gremlin.process.graph.traversal.step.map
import org.apache.tinkerpop.gremlin.process.ComputerTestHelper
import org.apache.tinkerpop.gremlin.process.Traversal
+import org.apache.tinkerpop.gremlin.process.graph.traversal.__
import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine
import org.apache.tinkerpop.gremlin.structure.Order
import org.apache.tinkerpop.gremlin.structure.Vertex
@@ -79,6 +80,16 @@ public abstract class GroovySelectTest {
public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select() {
return g.V.has(values('name').is('marko')).as('a').select
}
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_label_groupCount_cap_asXxX_select() {
+ return g.V().label().groupCount().cap().as('x').select()
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by() {
+ return g.V().hasLabel('person').as('person').local(__.bothE().label().groupCount().cap()).as('relations').select().by('name').by()
+ }
}
public static class ComputerTest extends SelectTest {
@@ -138,5 +149,18 @@ public abstract class GroovySelectTest {
public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select() {
ComputerTestHelper.compute("g.V.has(values('name').is('marko')).as('a').select", g)
}
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_label_groupCount_cap_asXxX_select() {
+ ComputerTestHelper.compute("g.V().label().groupCount().cap().as('x').select()", g)
+ }
+
+ @Override
+ Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by() {
+ g.engine(StandardTraversalEngine.standard);
+ // TODO: should work in computer mode, but throws ClassCastException
+ g.V().hasLabel('person').as('person').local(__.bothE().label().groupCount().cap()).as('relations').select().by('name').by()
+ //ComputerTestHelper.compute("g.V().hasLabel('person').as('person').local(__.bothE().label().groupCount().cap()).as('relations').select().by('name').by()", g)
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b61e0ee9/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
index 813c789..d5189e7 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
@@ -21,20 +21,19 @@ package org.apache.tinkerpop.gremlin.process.graph.traversal.step.map;
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.graph.traversal.__;
import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
import org.apache.tinkerpop.gremlin.structure.Order;
import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.junit.Ignore;
import org.junit.Test;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.CREW;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.values;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -60,6 +59,10 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select();
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_label_groupCount_cap_asXxX_select();
+
+ public abstract Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by();
+
@Test
@LoadGraphWith(MODERN)
public void g_VX1X_asXaX_outXknowsX_asXbX_select() {
@@ -176,6 +179,66 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
checkResults(expected, traversal);
}
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_label_groupCount_cap_asXxX_select() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_label_groupCount_cap_asXxX_select();
+ printTraversalForm(traversal);
+ assertTrue(traversal.hasNext());
+ final Map<String, Object> map1 = traversal.next();
+ assertEquals(1, map1.size());
+ assertTrue(map1.containsKey("x"));
+ final Map<String, Long> map2 = (Map<String, Long>) map1.get("x");
+ assertEquals(2, map2.size());
+ assertTrue(map2.containsKey("person"));
+ assertTrue(map2.containsKey("software"));
+ assertEquals(2, map2.get("software").longValue());
+ assertEquals(4, map2.get("person").longValue());
+ assertFalse(traversal.hasNext());
+ }
+
+ @Test
+ @Ignore
+ @LoadGraphWith(MODERN)
+ public void g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by() {
+ final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by();
+ printTraversalForm(traversal);
+ final Set<String> persons = new HashSet<>();
+ for (int i = 0; i < 4; i++) {
+ assertTrue(traversal.hasNext());
+ final Map<String, Object> map = traversal.next();
+ assertEquals(2, map.size());
+ assertTrue(map.containsKey("person"));
+ assertTrue(map.containsKey("relations"));
+ assertTrue(persons.add((String) map.get("person")));
+ final Map<String, Long> relations = (Map<String, Long>) map.get("relations");
+ switch ((String) map.get("person")) {
+ case "marko":
+ assertEquals(2, relations.size());
+ assertEquals(1, relations.get("created").longValue());
+ assertEquals(2, relations.get("knows").longValue());
+ break;
+ case "vadas":
+ assertEquals(1, relations.size());
+ assertEquals(1, relations.get("knows").longValue());
+ break;
+ case "josh":
+ assertEquals(2, relations.size());
+ assertEquals(2, relations.get("created").longValue());
+ assertEquals(1, relations.get("knows").longValue());
+ break;
+ case "peter":
+ assertEquals(1, relations.size());
+ assertEquals(1, relations.get("created").longValue());
+ break;
+ default:
+ assertTrue(false);
+ break;
+ }
+ }
+ assertFalse(traversal.hasNext());
+ assertEquals(4, persons.size());
+ }
public static class StandardTest extends SelectTest {
public StandardTest() {
@@ -226,6 +289,16 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select() {
return g.V().has(values("name").is("marko")).as("a").select();
}
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_label_groupCount_cap_asXxX_select() {
+ return g.V().label().groupCount().cap().as("x").select();
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by() {
+ return g.V().hasLabel("person").as("person").local(__.bothE().label().groupCount().cap()).as("relations").select().by("name").by();
+ }
}
public static class ComputerTest extends SelectTest {
@@ -290,5 +363,16 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select() {
return g.V().has(values("name").is("marko")).as("a").select();
}
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_label_groupCount_cap_asXxX_select() {
+ return g.V().label().groupCount().cap().as("x").select();
+ }
+
+ @Override
+ public Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXpersonX_asXpersonX_localXbothE_label_groupCount_capX_asXrelationsX_select_byXnameX_by() {
+ g.engine(StandardTraversalEngine.standard); // TODO
+ return g.V().hasLabel("person").as("person").local(__.bothE().label().groupCount().cap()).as("relations").select().by("name").by();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b61e0ee9/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 f57c468..4036089 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
@@ -20,10 +20,8 @@ package org.apache.tinkerpop.gremlin.tinkergraph.structure;
import org.apache.commons.io.FileUtils;
import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
-import org.apache.tinkerpop.gremlin.process.Scope;
import org.apache.tinkerpop.gremlin.process.T;
import org.apache.tinkerpop.gremlin.process.Traversal;
-import org.apache.tinkerpop.gremlin.process.graph.traversal.step.map.match.Bindings;
import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine;
import org.apache.tinkerpop.gremlin.structure.*;
import org.apache.tinkerpop.gremlin.structure.io.GraphReader;
@@ -41,7 +39,6 @@ import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
-import java.util.function.Function;
import java.util.function.Supplier;
import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;