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 2016/09/13 14:37:37 UTC
[9/9] tinkerpop git commit: Merge branch 'TINKERPOP-1391' into
TINKERPOP-1391-master
Merge branch 'TINKERPOP-1391' into TINKERPOP-1391-master
Resolved Conflicts:
CHANGELOG.asciidoc
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/eeb218c4
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/eeb218c4
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/eeb218c4
Branch: refs/heads/TINKERPOP-1391-master
Commit: eeb218c48b1f40734ec25f6fe257f27b8792f42e
Parents: 2492a3a 5ff97ef
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue Sep 13 16:35:58 2016 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue Sep 13 16:35:58 2016 +0200
----------------------------------------------------------------------
CHANGELOG.asciidoc | 3 ++-
.../optimization/RangeByIsCountStrategy.java | 20 +++++++++++++++++---
.../RangeByIsCountStrategyTest.java | 2 ++
3 files changed, 21 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/eeb218c4/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 7035b5e,f01966d..506b3a9
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -390,8 -26,9 +390,9 @@@ image::https://raw.githubusercontent.co
TinkerPop 3.1.5 (Release Date: NOT OFFICIALLY RELEASED YET)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- + Removed the `appveyor.yml` file as the AppVeyor build is no longer enabled by Apache Infrastructure.
++* Removed the `appveyor.yml` file as the AppVeyor build is no longer enabled by Apache Infrastructure.
+ * Fixed a bug in `RangeByIsCountStrategy` which didn't use the `NotStep` properly.
-
[[release-3-1-4]]
TinkerPop 3.1.4 (Release Date: September 6, 2016)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/eeb218c4/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
----------------------------------------------------------------------
diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
index 0e9539d,a48c0f0..99d2f75
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
@@@ -43,56 -48,109 +43,58 @@@ import static org.junit.Assert.assertEq
* @author Daniel Kuppitz (http://gremlin.guru)
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
-@RunWith(Enclosed.class)
+@RunWith(Parameterized.class)
public class RangeByIsCountStrategyTest {
- @RunWith(Parameterized.class)
- public static class StandardTest extends AbstractRangeByIsCountStrategyTest {
+ @Parameterized.Parameter(value = 0)
+ public Traversal original;
- @Parameterized.Parameters(name = "{0}")
- public static Iterable<Object[]> data() {
- return generateTestParameters();
- }
+ @Parameterized.Parameter(value = 1)
+ public Traversal optimized;
- @Parameterized.Parameter(value = 0)
- public Traversal original;
-
- @Parameterized.Parameter(value = 1)
- public Traversal optimized;
-
- @Before
- public void setup() {
- this.traversalEngine = mock(TraversalEngine.class);
- when(this.traversalEngine.getType()).thenReturn(TraversalEngine.Type.STANDARD);
- }
-
- @Test
- public void shouldApplyStrategy() {
- doTest(original, optimized);
- }
+ void applyRangeByIsCountStrategy(final Traversal traversal) {
+ final TraversalStrategies strategies = new DefaultTraversalStrategies();
+ strategies.addStrategies(RangeByIsCountStrategy.instance());
+ traversal.asAdmin().setStrategies(strategies);
+ traversal.asAdmin().applyStrategies();
}
- @RunWith(Parameterized.class)
- public static class ComputerTest extends AbstractRangeByIsCountStrategyTest {
-
- @Parameterized.Parameters(name = "{0}")
- public static Iterable<Object[]> data() {
- return generateTestParameters();
- }
-
- @Parameterized.Parameter(value = 0)
- public Traversal original;
-
- @Parameterized.Parameter(value = 1)
- public Traversal optimized;
-
- @Before
- public void setup() {
- this.traversalEngine = mock(TraversalEngine.class);
- when(this.traversalEngine.getType()).thenReturn(TraversalEngine.Type.COMPUTER);
- }
-
- @Test
- public void shouldApplyStrategy() {
- doTest(original, optimized);
- }
+ @Test
+ public void doTest() {
+ applyRangeByIsCountStrategy(original);
+ assertEquals(optimized, original);
}
- private static abstract class AbstractRangeByIsCountStrategyTest {
-
- protected TraversalEngine traversalEngine;
-
- void applyRangeByIsCountStrategy(final Traversal traversal) {
- final TraversalStrategies strategies = new DefaultTraversalStrategies();
- strategies.addStrategies(RangeByIsCountStrategy.instance());
-
- traversal.asAdmin().setStrategies(strategies);
- traversal.asAdmin().setEngine(this.traversalEngine);
- traversal.asAdmin().applyStrategies();
- }
-
- public void doTest(final Traversal traversal, final Traversal optimized) {
- applyRangeByIsCountStrategy(traversal);
- assertEquals(optimized, traversal);
- }
-
- static Iterable<Object[]> generateTestParameters() {
-
- return Arrays.asList(new Traversal[][]{
- {__.count().is(0), __.not(__.identity())},
- {__.count().is(1), __.limit(2).count().is(1)},
- {__.out().count().is(0), __.not(__.out())},
- {__.outE().count().is(lt(1)), __.not(__.outE())},
- {__.both().count().is(lte(0)), __.not(__.both())},
- {__.store("x").count().is(0).as("a"), __.store("x").limit(1).count().is(0).as("a")},
- {__.out().count().as("a").is(0), __.out().limit(1).count().as("a").is(0)},
- {__.out().count().is(neq(4)), __.out().limit(5).count().is(neq(4))},
- {__.out().count().is(lte(3)), __.out().limit(4).count().is(lte(3))},
- {__.out().count().is(lt(3)), __.out().limit(3).count().is(lt(3))},
- {__.out().count().is(gt(2)), __.out().limit(3).count().is(gt(2))},
- {__.out().count().is(gte(2)), __.out().limit(2).count().is(gte(2))},
- {__.out().count().is(inside(2, 4)), __.out().limit(4).count().is(inside(2, 4))},
- {__.out().count().is(outside(2, 4)), __.out().limit(5).count().is(outside(2, 4))},
- {__.out().count().is(within(2, 6, 4)), __.out().limit(7).count().is(within(2, 6, 4))},
- {__.out().count().is(without(2, 6, 4)), __.out().limit(6).count().is(without(2, 6, 4))},
- {__.map(__.count().is(0)), __.map(__.limit(1).count().is(0))},
- {__.flatMap(__.count().is(0)), __.flatMap(__.limit(1).count().is(0))},
- {__.filter(__.count().is(0)), __.filter(__.not(__.identity()))},
- {__.sideEffect(__.count().is(0)), __.sideEffect(__.not(__.identity()))},
- {__.branch(__.count().is(0)), __.branch(__.limit(1).count().is(0))},
- {__.count().is(0).store("x"), __.limit(1).count().is(0).store("x")},
- {__.repeat(__.out()).until(__.outE().count().is(0)), __.repeat(__.out()).until(__.not(__.outE()))},
- {__.repeat(__.out()).emit(__.outE().count().is(0)), __.repeat(__.out()).emit(__.not(__.outE()))},
- {__.where(__.outE().hasLabel("created").count().is(0)), __.where(__.not(__.outE().hasLabel("created")))},
- {__.where(__.out().outE().hasLabel("created").count().is(0)), __.where(__.out().not(__.outE().hasLabel("created")))},
- });
- }
+ @Parameterized.Parameters(name = "{0}")
+ public static Iterable<Object[]> generateTestParameters() {
+
+ return Arrays.asList(new Traversal[][]{
+ {__.count().is(0), __.not(__.identity())},
+ {__.count().is(1), __.limit(2).count().is(1)},
+ {__.out().count().is(0), __.not(__.out())},
+ {__.outE().count().is(lt(1)), __.not(__.outE())},
+ {__.both().count().is(lte(0)), __.not(__.both())},
+ {__.store("x").count().is(0).as("a"), __.store("x").limit(1).count().is(0).as("a")},
+ {__.out().count().as("a").is(0), __.out().limit(1).count().as("a").is(0)},
+ {__.out().count().is(neq(4)), __.out().limit(5).count().is(neq(4))},
+ {__.out().count().is(lte(3)), __.out().limit(4).count().is(lte(3))},
+ {__.out().count().is(lt(3)), __.out().limit(3).count().is(lt(3))},
+ {__.out().count().is(gt(2)), __.out().limit(3).count().is(gt(2))},
+ {__.out().count().is(gte(2)), __.out().limit(2).count().is(gte(2))},
+ {__.out().count().is(inside(2, 4)), __.out().limit(4).count().is(inside(2, 4))},
+ {__.out().count().is(outside(2, 4)), __.out().limit(5).count().is(outside(2, 4))},
+ {__.out().count().is(within(2, 6, 4)), __.out().limit(7).count().is(within(2, 6, 4))},
+ {__.out().count().is(without(2, 6, 4)), __.out().limit(6).count().is(without(2, 6, 4))},
+ {__.map(__.count().is(0)), __.map(__.limit(1).count().is(0))},
+ {__.flatMap(__.count().is(0)), __.flatMap(__.limit(1).count().is(0))},
+ {__.filter(__.count().is(0)), __.filter(__.not(__.identity()))},
+ {__.sideEffect(__.count().is(0)), __.sideEffect(__.not(__.identity()))},
+ {__.branch(__.count().is(0)), __.branch(__.limit(1).count().is(0))},
+ {__.count().is(0).store("x"), __.limit(1).count().is(0).store("x")},
+ {__.repeat(__.out()).until(__.outE().count().is(0)), __.repeat(__.out()).until(__.not(__.outE()))},
+ {__.repeat(__.out()).emit(__.outE().count().is(0)), __.repeat(__.out()).emit(__.not(__.outE()))},
++ {__.where(__.outE().hasLabel("created").count().is(0)), __.where(__.not(__.outE().hasLabel("created")))},
++ {__.where(__.out().outE().hasLabel("created").count().is(0)), __.where(__.out().not(__.outE().hasLabel("created")))},
+ });
}
}