You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2017/09/16 08:43:14 UTC
[2/2] groovy git commit: Add `subTuple` method
Add `subTuple` method
(cherry picked from commit c9d8716)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/57c221ee
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/57c221ee
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/57c221ee
Branch: refs/heads/GROOVY_2_6_X
Commit: 57c221ee673cd01874fc603021e886eb200f02c9
Parents: 42ccfc7
Author: sunlan <su...@apache.org>
Authored: Sat Sep 16 16:10:16 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Sep 16 16:43:03 2017 +0800
----------------------------------------------------------------------
src/main/groovy/lang/Tuple.java | 4 +
src/test/groovy/lang/TupleTest.java | 214 +++++++++++++++++++++++++++++++
2 files changed, 218 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/57c221ee/src/main/groovy/lang/Tuple.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple.java b/src/main/groovy/lang/Tuple.java
index 36b04cb..38d835d 100644
--- a/src/main/groovy/lang/Tuple.java
+++ b/src/main/groovy/lang/Tuple.java
@@ -50,4 +50,8 @@ public class Tuple<E> extends AbstractTuple<E> {
System.arraycopy(contents, fromIndex, newContent, 0, size);
return new Tuple<>(newContent);
}
+
+ public Tuple<E> subTuple(int fromIndex, int toIndex) {
+ return (Tuple<E>) subList(fromIndex, toIndex);
+ }
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/57c221ee/src/test/groovy/lang/TupleTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/TupleTest.java b/src/test/groovy/lang/TupleTest.java
index 2e88659..19f07b7 100644
--- a/src/test/groovy/lang/TupleTest.java
+++ b/src/test/groovy/lang/TupleTest.java
@@ -68,6 +68,14 @@ public class TupleTest extends TestCase {
assertEquals("size", 1, s.size());
}
+ public void testSubTuple() {
+ Tuple s = t.subTuple(1, 2);
+
+ assertTrue("is a Tuple", s instanceof Tuple);
+
+ assertEquals("size", 1, s.size());
+ }
+
public void testHashCodeAndEquals() {
Tuple a = new Tuple(new Object[]{"a", "b", "c"});
Tuple b = new Tuple(new Object[]{"a", "b", "c"});
@@ -93,4 +101,210 @@ public class TupleTest extends TestCase {
public void testIterator() {
}
+ public void testTuple1() {
+ Tuple1<Integer> t = new Tuple1<>(1);
+
+ assertEquals(1, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple2() {
+ Tuple2<Integer, Integer> t = new Tuple2<>(1, 2);
+
+ assertEquals(2, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple3() {
+ Tuple3<Integer, Integer, Integer> t = new Tuple3<>(1, 2, 3);
+
+ assertEquals(3, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple4() {
+ Tuple4<Integer, Integer, Integer, Integer> t = new Tuple4<>(1, 2, 3, 4);
+
+ assertEquals(4, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(new Integer(4), t.getFourth());
+ assertEquals(4, t.get(3));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple5() {
+ Tuple5<Integer, Integer, Integer, Integer, Integer> t = new Tuple5<>(1, 2, 3, 4, 5);
+
+ assertEquals(5, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(new Integer(4), t.getFourth());
+ assertEquals(4, t.get(3));
+
+ assertEquals(new Integer(5), t.getFifth());
+ assertEquals(5, t.get(4));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple6() {
+ Tuple6<Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple6<>(1, 2, 3, 4, 5, 6);
+
+ assertEquals(6, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(new Integer(4), t.getFourth());
+ assertEquals(4, t.get(3));
+
+ assertEquals(new Integer(5), t.getFifth());
+ assertEquals(5, t.get(4));
+
+ assertEquals(new Integer(6), t.getSixth());
+ assertEquals(6, t.get(5));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple7() {
+ Tuple7<Integer, Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple7<>(1, 2, 3, 4, 5, 6, 7);
+
+ assertEquals(7, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(new Integer(4), t.getFourth());
+ assertEquals(4, t.get(3));
+
+ assertEquals(new Integer(5), t.getFifth());
+ assertEquals(5, t.get(4));
+
+ assertEquals(new Integer(6), t.getSixth());
+ assertEquals(6, t.get(5));
+
+ assertEquals(new Integer(7), t.getSeventh());
+ assertEquals(7, t.get(6));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple8() {
+ Tuple8<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple8<>(1, 2, 3, 4, 5, 6, 7, 8);
+
+ assertEquals(8, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(new Integer(4), t.getFourth());
+ assertEquals(4, t.get(3));
+
+ assertEquals(new Integer(5), t.getFifth());
+ assertEquals(5, t.get(4));
+
+ assertEquals(new Integer(6), t.getSixth());
+ assertEquals(6, t.get(5));
+
+ assertEquals(new Integer(7), t.getSeventh());
+ assertEquals(7, t.get(6));
+
+ assertEquals(new Integer(8), t.getEighth());
+ assertEquals(8, t.get(7));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
+
+ public void testTuple9() {
+ Tuple9<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple9<>(1, 2, 3, 4, 5, 6, 7, 8, 9);
+
+ assertEquals(9, t.size());
+
+ assertEquals(new Integer(1), t.getFirst());
+ assertEquals(1, t.get(0));
+
+ assertEquals(new Integer(2), t.getSecond());
+ assertEquals(2, t.get(1));
+
+ assertEquals(new Integer(3), t.getThird());
+ assertEquals(3, t.get(2));
+
+ assertEquals(new Integer(4), t.getFourth());
+ assertEquals(4, t.get(3));
+
+ assertEquals(new Integer(5), t.getFifth());
+ assertEquals(5, t.get(4));
+
+ assertEquals(new Integer(6), t.getSixth());
+ assertEquals(6, t.get(5));
+
+ assertEquals(new Integer(7), t.getSeventh());
+ assertEquals(7, t.get(6));
+
+ assertEquals(new Integer(8), t.getEighth());
+ assertEquals(8, t.get(7));
+
+ assertEquals(new Integer(9), t.getNinth());
+ assertEquals(9, t.get(8));
+
+ assertEquals(t, t.subTuple(0, t.size()));
+ }
}