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 2017/10/13 14:48:58 UTC
[10/12] tinkerpop git commit: fixed a bug in typing which caused a
different applyNullable to be called. Added a nested sack() test to MathTest
to verify proper sinusoidal behavior.
fixed a bug in typing which caused a different applyNullable to be called. Added a nested sack() test to MathTest to verify proper sinusoidal behavior.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/e9664229
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/e9664229
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/e9664229
Branch: refs/heads/master
Commit: e9664229038e87d9974971fb0249ad0f884a22ff
Parents: 14a2543
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Wed Oct 4 16:58:09 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Wed Oct 4 16:58:09 2017 -0600
----------------------------------------------------------------------
.../process/traversal/step/map/MathStep.java | 11 ++++-----
.../process/traversal/step/map/MathTest.java | 24 ++++++++++++++++++++
.../structure/TinkerGraphPlayTest.java | 15 ++++--------
3 files changed, 34 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9664229/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathStep.java
index 53abc30..a10ec5e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathStep.java
@@ -48,7 +48,7 @@ public final class MathStep<S> extends MapStep<S, Double> implements ByModulatin
private static final String CURRENT = "_";
private final String equation;
private final Set<String> variables;
- private TraversalRing<Object, Number> traversalRing = new TraversalRing<>();
+ private TraversalRing<S, Number> traversalRing = new TraversalRing<>();
private Set<String> keepLabels;
public MathStep(final Traversal.Admin traversal, final String equation) {
@@ -70,11 +70,10 @@ public final class MathStep<S> extends MapStep<S, Double> implements ByModulatin
.implicitMultiplication(false)
.build();
for (final String var : this.variables) {
- expression.setVariable(var, TraversalUtil.applyNullable(
+ expression.setVariable(var,
var.equals(CURRENT) ?
- traverser.get() :
- this.getNullableScopeValue(Pop.last, var, traverser),
- this.traversalRing.next()).doubleValue());
+ TraversalUtil.applyNullable(traverser, this.traversalRing.next()).doubleValue() :
+ TraversalUtil.applyNullable((S) this.getNullableScopeValue(Pop.last, var, traverser), this.traversalRing.next()).doubleValue());
}
this.traversalRing.reset();
return expression.evaluate();
@@ -96,7 +95,7 @@ public final class MathStep<S> extends MapStep<S, Double> implements ByModulatin
}
@Override
- public List<Traversal.Admin<Object, Number>> getLocalChildren() {
+ public List<Traversal.Admin<S, Number>> getLocalChildren() {
return this.traversalRing.getTraversals();
}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9664229/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathTest.java
index 94065e9..9858d28 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MathTest.java
@@ -23,14 +23,19 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
+import java.util.function.BiFunction;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.Operator.sum;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.in;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.sack;
+import static org.junit.Assert.assertEquals;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
@@ -44,6 +49,8 @@ public abstract class MathTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Double> get_g_V_asXaX_outXcreatedX_asXbX_mathXb_plus_aX_byXinXcreatedX_countX_byXageX();
+ public abstract Traversal<Integer, Double> get_g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX();
+
@Test
@LoadGraphWith(MODERN)
public void g_V_asXaX_outXknowsX_asXbX_mathXa_plus_bX_byXageX() {
@@ -68,6 +75,18 @@ public abstract class MathTest extends AbstractGremlinProcessTest {
checkResults(Arrays.asList(32.0d, 33.0d, 35.0d, 38.0d), traversal);
}
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX() {
+ final Traversal<Integer, Double> traversal = get_g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX();
+ printTraversalForm(traversal);
+ assertEquals(0.9092974268256817d, traversal.next(), 0.01d);
+ assertEquals(0.1411200080598672d, traversal.next(), 0.01d);
+ assertEquals(-0.7568024953079282d, traversal.next(), 0.01d);
+ assertEquals(-0.9589242746631385d, traversal.next(), 0.01d);
+ assertEquals(-0.27941549819892586d, traversal.next(), 0.01d);
+ }
+
public static class Traversals extends MathTest {
@Override
@@ -84,5 +103,10 @@ public abstract class MathTest extends AbstractGremlinProcessTest {
public Traversal<Vertex, Double> get_g_V_asXaX_outXcreatedX_asXbX_mathXb_plus_aX_byXinXcreatedX_countX_byXageX() {
return g.V().as("a").out("created").as("b").math("b + a").by(in("created").count()).by("age");
}
+
+ @Override
+ public Traversal<Integer, Double> get_g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX() {
+ return g.withSack(1).inject(1).repeat(__.sack((BiFunction) sum).by(__.constant(1))).times(10).emit().math("sin _").by(sack());
+ }
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9664229/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index 2fb0d68..a13a4ad 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@ -18,16 +18,13 @@
*/
package org.apache.tinkerpop.gremlin.tinkergraph.structure;
-import org.apache.tinkerpop.gremlin.jsr223.JavaTranslator;
import org.apache.tinkerpop.gremlin.process.computer.Computer;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
-import org.apache.tinkerpop.gremlin.process.traversal.Order;
+import org.apache.tinkerpop.gremlin.process.traversal.Operator;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.PathRetractionStrategy;
-import org.apache.tinkerpop.gremlin.structure.Column;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -39,23 +36,21 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Map;
+import java.util.function.BiFunction;
import java.util.function.Supplier;
+import static org.apache.tinkerpop.gremlin.process.traversal.Operator.sum;
import static org.apache.tinkerpop.gremlin.process.traversal.P.lt;
import static org.apache.tinkerpop.gremlin.process.traversal.P.neq;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.both;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.bothE;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.choose;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.in;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.sack;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.union;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.valueMap;
@@ -71,7 +66,7 @@ public class TinkerGraphPlayTest {
public void testPlay8() throws Exception {
Graph graph = TinkerFactory.createModern();
GraphTraversalSource g = graph.traversal();
- System.out.println(g.V().values("age").math("sin _").toList());
+ System.out.println(g.withSack(1).inject(1).repeat(__.sack((BiFunction)sum).by(__.constant(1))).times(10).emit().math("sin _").by(sack()).toList());
}
@Test