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/05/12 01:10:48 UTC

[03/40] tinkerpop git commit: Added unit tests for Order and improved javadoc CTR

Added unit tests for Order and improved javadoc CTR


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/59545254
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/59545254
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/59545254

Branch: refs/heads/TINKERPOP-1447
Commit: 59545254930c502c8acfe470dd919f36c87cf78c
Parents: 789e575
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 26 08:42:13 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 26 08:42:13 2018 -0400

----------------------------------------------------------------------
 .../gremlin/process/traversal/Order.java        | 29 ++++++--
 .../gremlin/process/traversal/OrderTest.java    | 76 ++++++++++++++++++++
 2 files changed, 100 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/59545254/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
index 7c3475a..3710396 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Order.java
@@ -23,10 +23,18 @@ import java.util.Map;
 import java.util.Random;
 
 /**
+ * Provides {@code Comparator} instances for ordering traversers.
+ *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
+ * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 public enum Order implements Comparator<Object> {
 
+    /**
+     * Order in ascending fashion
+     *
+     * @since 3.0.0-incubating
+     */
     incr {
         @Override
         public int compare(final Object first, final Object second) {
@@ -39,7 +47,14 @@ public enum Order implements Comparator<Object> {
         public Order reversed() {
             return decr;
         }
-    }, decr {
+    },
+
+    /**
+     * Order in descending fashion.
+     *
+     * @since 3.0.0-incubating
+     */
+    decr {
         @Override
         public int compare(final Object first, final Object second) {
             return first instanceof Number && second instanceof Number
@@ -53,7 +68,8 @@ public enum Order implements Comparator<Object> {
         }
     },
     /**
-     * @deprecated Use {@link org.apache.tinkerpop.gremlin.structure.Column#keys};
+     * @since 3.0.0-incubating
+     * @deprecated As of release 3.1.1-incubating, replaced by {@link org.apache.tinkerpop.gremlin.structure.Column#keys}.
      */
     @Deprecated
     keyIncr {
@@ -68,7 +84,8 @@ public enum Order implements Comparator<Object> {
         }
     },
     /**
-     * @deprecated Use {@link org.apache.tinkerpop.gremlin.structure.Column#values};
+     * @since 3.0.0-incubating
+     * @deprecated As of release 3.1.1-incubating, replaced by {@link org.apache.tinkerpop.gremlin.structure.Column#values}.
      */
     @Deprecated
     valueIncr {
@@ -83,7 +100,8 @@ public enum Order implements Comparator<Object> {
         }
     },
     /**
-     * @deprecated Use {@link org.apache.tinkerpop.gremlin.structure.Column#keys};
+     * @since 3.0.0-incubating
+     * @deprecated As of release 3.1.1-incubating, replaced by {@link org.apache.tinkerpop.gremlin.structure.Column#keys}.
      */
     @Deprecated
     keyDecr {
@@ -98,7 +116,8 @@ public enum Order implements Comparator<Object> {
         }
     },
     /**
-     * @deprecated Use {@link org.apache.tinkerpop.gremlin.structure.Column#values};
+     * @since 3.0.0-incubating
+     * @deprecated As of release 3.1.1-incubating, replaced by {@link org.apache.tinkerpop.gremlin.structure.Column#values}.
      */
     @Deprecated
     valueDecr {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/59545254/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
new file mode 100644
index 0000000..01d93ea
--- /dev/null
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/OrderTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+@RunWith(Parameterized.class)
+public class OrderTest {
+
+    private static final SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
+
+    @Parameterized.Parameters(name = "{0}.test({1},{2})")
+    public static Iterable<Object[]> data() throws ParseException {
+        return new ArrayList<>(Arrays.asList(new Object[][]{
+                {Order.incr, Arrays.asList("b", "a", "c", "d"), Arrays.asList("a", "b", "c", "d")},
+                {Order.decr, Arrays.asList("b", "a", "c", "d"), Arrays.asList("d", "c", "b", "a")},
+                {Order.incr, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
+                             Arrays.asList(formatter.parse("1-Jan-2008"), formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"))},
+                {Order.decr, Arrays.asList(formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2008")),
+                             Arrays.asList(formatter.parse("1-Jan-2020"), formatter.parse("1-Jan-2018"), formatter.parse("1-Jan-2008"))},
+                {Order.decr, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
+                {Order.incr, Arrays.asList(100.1f, 1.1f, -1.1f, 0.1f), Arrays.asList(-1.1f, 0.1f, 1.1f, 100.1f)},
+                {Order.decr, Arrays.asList(100.1f, 1.1f, -1.1f, 0.1f), Arrays.asList(100.1f, 1.1f, 0.1f, -1.1f)},
+                {Order.incr, Arrays.asList(100.1d, 1.1d, -1.1d, 0.1d), Arrays.asList(-1.1d, 0.1d, 1.1d, 100.1d)},
+                {Order.decr, Arrays.asList(100.1d, 1.1d, -1.1d, 0.1d), Arrays.asList(100.1d, 1.1d, 0.1d, -1.1d)},
+                {Order.incr, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(-1L, 0L, 1L, 100L)},
+                {Order.decr, Arrays.asList(100L, 1L, -1L, 0L), Arrays.asList(100L, 1L, 0L, -1L)},
+                {Order.incr, Arrays.asList(100, 1, -1, 0), Arrays.asList(-1, 0, 1, 100)},
+                {Order.decr, Arrays.asList(100, 1, -1, 0), Arrays.asList(100, 1, 0, -1)}}));
+    }
+
+    @Parameterized.Parameter(value = 0)
+    public Order order;
+
+    @Parameterized.Parameter(value = 1)
+    public Object toBeOrdered;
+
+    @Parameterized.Parameter(value = 2)
+    public Object expectedOrder;
+
+    @Test
+    public void shouldOrder() {
+        Collections.sort((List) toBeOrdered, order);
+        assertEquals(expectedOrder, toBeOrdered);
+    }
+}