You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2016/08/10 13:03:06 UTC
groovy git commit: minor refactor
Repository: groovy
Updated Branches:
refs/heads/master a472efe53 -> 8311b23ad
minor refactor
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/8311b23a
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/8311b23a
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/8311b23a
Branch: refs/heads/master
Commit: 8311b23ade10c4b26c4473f6cc498641ebf2acb0
Parents: a472efe
Author: paulk <pa...@asert.com.au>
Authored: Wed Aug 10 23:02:51 2016 +1000
Committer: paulk <pa...@asert.com.au>
Committed: Wed Aug 10 23:02:51 2016 +1000
----------------------------------------------------------------------
.../groovy/lang/BigDecimalObjectRangeTest.java | 49 ++
src/test/groovy/lang/BigDecimalRangeTest.java | 44 --
.../groovy/lang/BigIntegerObjectRangeTest.java | 49 ++
src/test/groovy/lang/BigIntegerRangeTest.java | 44 --
src/test/groovy/lang/DoubleObjectRangeTest.java | 49 ++
src/test/groovy/lang/EmptyRangeTest.java | 2 +-
src/test/groovy/lang/FloatObjectRangeTest.java | 47 ++
src/test/groovy/lang/FloatRangeTest.java | 42 --
.../groovy/lang/IntegerObjectRangeTest.java | 47 ++
src/test/groovy/lang/IntegerRangeTest.java | 43 --
src/test/groovy/lang/LongObjectRangeTest.java | 56 ++
src/test/groovy/lang/LongRangeTest.java | 52 --
src/test/groovy/lang/NumberRangeTest.java | 737 ------------------
src/test/groovy/lang/NumberRangeTestCase.java | 749 +++++++++++++++++++
src/test/groovy/lang/ShortObjectRangeTest.java | 46 ++
src/test/groovy/lang/ShortRangeTest.java | 42 --
16 files changed, 1093 insertions(+), 1005 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/BigDecimalObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/BigDecimalObjectRangeTest.java b/src/test/groovy/lang/BigDecimalObjectRangeTest.java
new file mode 100644
index 0000000..fcaa7b2
--- /dev/null
+++ b/src/test/groovy/lang/BigDecimalObjectRangeTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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 groovy.lang;
+
+import java.math.BigDecimal;
+
+/**
+ * Tests {@link ObjectRange}s of {@link BigDecimal}s.
+ */
+public class BigDecimalObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange(new BigDecimal(from), new BigDecimal(to));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return new BigDecimal(value);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/BigDecimalRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/BigDecimalRangeTest.java b/src/test/groovy/lang/BigDecimalRangeTest.java
deleted file mode 100644
index 61414f6..0000000
--- a/src/test/groovy/lang/BigDecimalRangeTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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 groovy.lang;
-
-import java.math.BigDecimal;
-
-/**
- * Tests {@link ObjectRange}s of {@link BigDecimal}s.
- *
- * @author Edwin Tellman
- */
-public class BigDecimalRangeTest extends NumberRangeTest {
-
- /**
- * {@inheritDoc}
- */
- protected Range createRange(int from, int to) {
- return new ObjectRange(new BigDecimal(from), new BigDecimal(to));
- }
-
- /**
- * {@inheritDoc}
- */
- protected Comparable createValue(int value) {
- return new BigDecimal(value);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/BigIntegerObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/BigIntegerObjectRangeTest.java b/src/test/groovy/lang/BigIntegerObjectRangeTest.java
new file mode 100644
index 0000000..15fb61a
--- /dev/null
+++ b/src/test/groovy/lang/BigIntegerObjectRangeTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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 groovy.lang;
+
+import java.math.BigInteger;
+
+/**
+ * Tests {@link ObjectRange}s of {@link BigInteger}s.
+ */
+public class BigIntegerObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange(BigInteger.valueOf(from), BigInteger.valueOf(to));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return BigInteger.valueOf(value);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/BigIntegerRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/BigIntegerRangeTest.java b/src/test/groovy/lang/BigIntegerRangeTest.java
deleted file mode 100644
index ce121be..0000000
--- a/src/test/groovy/lang/BigIntegerRangeTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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 groovy.lang;
-
-import java.math.BigInteger;
-
-/**
- * Tests {@link ObjectRange}s of {@link BigInteger}s.
- *
- * @author Edwin Tellman
- */
-public class BigIntegerRangeTest extends NumberRangeTest {
-
- /**
- * {@inheritDoc}
- */
- protected Range createRange(int from, int to) {
- return new ObjectRange(BigInteger.valueOf(from), BigInteger.valueOf(to));
- }
-
- /**
- * {@inheritDoc}
- */
- protected Comparable createValue(int value) {
- return BigInteger.valueOf(value);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/DoubleObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/DoubleObjectRangeTest.java b/src/test/groovy/lang/DoubleObjectRangeTest.java
new file mode 100644
index 0000000..6d866a2
--- /dev/null
+++ b/src/test/groovy/lang/DoubleObjectRangeTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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 groovy.lang;
+
+/**
+ * Tests {@link ObjectRange}s of {@link Double}s.
+ */
+public class DoubleObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange((double) from, (double) to);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return (double) value;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/EmptyRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/EmptyRangeTest.java b/src/test/groovy/lang/EmptyRangeTest.java
index e5e09d9..16e7302 100644
--- a/src/test/groovy/lang/EmptyRangeTest.java
+++ b/src/test/groovy/lang/EmptyRangeTest.java
@@ -374,7 +374,7 @@ public class EmptyRangeTest extends GroovyTestCase {
*/
public void testStepIntClosure() {
final List callLog = new ArrayList();
- final Closure closure = new NumberRangeTest.RecordingClosure(callLog);
+ final Closure closure = new NumberRangeTestCase.RecordingClosure(callLog);
range.step(1, closure);
assertEquals("wrong number of calls to closure", 0, callLog.size());
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/FloatObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/FloatObjectRangeTest.java b/src/test/groovy/lang/FloatObjectRangeTest.java
new file mode 100644
index 0000000..e46bb48
--- /dev/null
+++ b/src/test/groovy/lang/FloatObjectRangeTest.java
@@ -0,0 +1,47 @@
+/*
+ * 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 groovy.lang;
+
+/**
+ * Tests {@link ObjectRange}s of {@link Float}s.
+ */
+public class FloatObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange(new Float(from), new Float(to));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return new Double(value);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/FloatRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/FloatRangeTest.java b/src/test/groovy/lang/FloatRangeTest.java
deleted file mode 100644
index 4b512c0..0000000
--- a/src/test/groovy/lang/FloatRangeTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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 groovy.lang;
-
-/**
- * Tests {@link ObjectRange}s of {@link Float}s.
- *
- * @author Edwin Tellman
- */
-public class FloatRangeTest extends NumberRangeTest {
-
- /**
- * {@inheritDoc}
- */
- protected Range createRange(int from, int to) {
- return new ObjectRange(new Float(from), new Float(to));
- }
-
- /**
- * {@inheritDoc}
- */
- protected Comparable createValue(int value) {
- return new Double(value);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/IntegerObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/IntegerObjectRangeTest.java b/src/test/groovy/lang/IntegerObjectRangeTest.java
new file mode 100644
index 0000000..29f8adc
--- /dev/null
+++ b/src/test/groovy/lang/IntegerObjectRangeTest.java
@@ -0,0 +1,47 @@
+/*
+ * 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 groovy.lang;
+
+/**
+ * Tests {@link ObjectRange}s of {@link Integer}s.
+ */
+public class IntegerObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange(new Integer(from), new Integer(to));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return new Integer(value);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/IntegerRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/IntegerRangeTest.java b/src/test/groovy/lang/IntegerRangeTest.java
deleted file mode 100644
index 48e9f4d..0000000
--- a/src/test/groovy/lang/IntegerRangeTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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 groovy.lang;
-
-
-/**
- * Tests {@link ObjectRange}s of {@link Integer}s.
- *
- * @author Edwin Tellman
- */
-public class IntegerRangeTest extends NumberRangeTest {
-
- /**
- * {@inheritDoc}
- */
- protected Range createRange(int from, int to) {
- return new ObjectRange(new Integer(from), new Integer(to));
- }
-
- /**
- * {@inheritDoc}
- */
- protected Comparable createValue(int value) {
- return new Integer(value);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/LongObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/LongObjectRangeTest.java b/src/test/groovy/lang/LongObjectRangeTest.java
new file mode 100644
index 0000000..5d7c8e2
--- /dev/null
+++ b/src/test/groovy/lang/LongObjectRangeTest.java
@@ -0,0 +1,56 @@
+/*
+ * 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 groovy.lang;
+
+/**
+ * Tests {@link ObjectRange}s of {@link Long}s.
+ */
+public class LongObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange(new Long(from), new Long(to));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return new Long(value);
+ }
+
+ public void testSizeWithLongTo() {
+ assertEquals(3, new ObjectRange(new Integer(Integer.MAX_VALUE), new Long(Integer.MAX_VALUE + 2L)).size());
+ }
+
+ // GROOVY-4973: Range made-up of from: Integer and to: Long should have 'from' promoted to type Long.
+ protected void checkRangeValues(Integer from, Comparable to, Range range) {
+ assertEquals("wrong 'from' value", Long.valueOf(from.longValue()), range.getFrom());
+ assertEquals("wrong 'to' value", to, range.getTo());
+ }
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/LongRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/LongRangeTest.java b/src/test/groovy/lang/LongRangeTest.java
deleted file mode 100644
index f636f0a..0000000
--- a/src/test/groovy/lang/LongRangeTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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 groovy.lang;
-
-
-/**
- * Tests {@link ObjectRange}s of {@link Long}s.
- *
- * @author Edwin Tellman
- */
-public class LongRangeTest extends NumberRangeTest {
-
- /**
- * {@inheritDoc}
- */
- protected Range createRange(int from, int to) {
- return new ObjectRange(new Long(from), new Long(to));
- }
-
- /**
- * {@inheritDoc}
- */
- protected Comparable createValue(int value) {
- return new Long(value);
- }
-
- public void testSizeWithLongTo() {
- assertEquals(3, new ObjectRange(new Integer(Integer.MAX_VALUE), new Long(Integer.MAX_VALUE + 2L)).size());
- }
-
- // GROOVY-4973: Range made-up of from: Integer and to: Long should have 'from' promoted to type Long.
- protected void checkRangeValues(Integer from, Comparable to, Range range) {
- assertEquals("wrong 'from' value", Long.valueOf(from.longValue()), range.getFrom());
- assertEquals("wrong 'to' value", to, range.getTo());
- }
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/NumberRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/NumberRangeTest.java b/src/test/groovy/lang/NumberRangeTest.java
deleted file mode 100644
index e4d5a93..0000000
--- a/src/test/groovy/lang/NumberRangeTest.java
+++ /dev/null
@@ -1,737 +0,0 @@
-/*
- * 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 groovy.lang;
-
-import junit.framework.TestCase;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Provides unit tests for ranges of numbers.
- *
- * @author Edwin Tellman
- */
-public abstract class NumberRangeTest extends TestCase {
-
- /**
- * Records the values passed to a closure.
- */
- protected static class RecordingClosure extends Closure {
- /**
- * Holds the values passed in
- */
- final List callLog;
-
- /**
- * Creates a new <code>RecordingClosure</code>
- *
- * @param callLog is filled with the values passed to <code>doCall</code>
- */
- RecordingClosure(final List callLog) {
- super(null);
- this.callLog = callLog;
- }
-
- /**
- * Stores <code>params</code> in the <code>callLog</code>.
- *
- * @param params the parameters.
- * @return null
- */
- public Object doCall(final Object params) {
- callLog.add(params);
- return null;
- }
- }
-
- /**
- * Creates a {@link Range} to test.
- *
- * @param from the first value in the range.
- * @param to the last value in the range.
- * @return a {@link Range} to test
- */
- protected abstract Range createRange(final int from, final int to);
-
- /**
- * Creates a value in the range.
- *
- * @param value the value to create.
- * @return a value in the range.
- */
- protected abstract Comparable createValue(final int value);
-
- /**
- * Tests <code>hashCode</code> and <code>equals</code> comparing one {@link IntRange} to another {@link IntRange}.
- */
- public final void testHashCodeAndEquals() {
- Range a = createRange(1, 11);
- Range b = createRange(1, 11);
- Range c = createRange(2, 11);
-
- assertEquals("hashcode", a.hashCode(), b.hashCode());
- assertTrue("hashcode", a.hashCode() != c.hashCode());
-
- assertEquals("a and b", a, b);
- assertFalse("a != c", a.equals(c));
- }
-
- /**
- * Tests using different classes for 'from' and 'to'.
- */
- public void testDifferentClassesForFromAndTo() {
- final Integer from = new Integer(1);
- final Comparable to = createValue(5);
- final Range range = new ObjectRange(from, to);
-
- checkRangeValues(from, to, range);
- }
-
- protected void checkRangeValues(Integer from, Comparable to, Range range) {
- assertEquals("wrong 'from' value", from, range.getFrom());
- assertEquals("wrong 'to' value", to, range.getTo());
- }
-
- /**
- * Tests a <code>null</code> 'from' value.
- */
- public void testNullFrom() {
- try {
- new ObjectRange(null, createValue(5));
- fail("null 'from' accepted");
- }
- catch (IllegalArgumentException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests a <code>null</code> 'to' value.
- */
- public void testNullTo() {
- try {
- new ObjectRange(createValue(23), null);
- fail("null 'to' accepted");
- }
- catch (IllegalArgumentException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests stepping through a range by two with a closure.
- */
- public void testStepByTwoWithClosure() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(0, 4);
- range.step(2, closure);
-
- assertEquals("wrong number of calls to closure", 3, callLog.size());
- final Iterator iter = callLog.iterator();
- for (int i = 0; i <= 4; i += 2) {
- assertEquals("wrong argument passed to closure", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests iterating over a one-element range.
- */
- public void testOneElementRange() {
- final Range range = createRange(1, 1);
- int next = 1;
- for (Iterator iter = range.iterator(); iter.hasNext();) {
- final Number number = (Number) iter.next();
- assertEquals("wrong number", createValue(next++), number);
- }
- assertEquals("wrong number of elements in iteration", 2, next);
- }
-
- /**
- * Tests stepping through a reversed range by two with a closure.
- */
- public void testReverseStepByTwoWithClosure() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(4, 0);
- range.step(2, closure);
-
- assertEquals("wrong number of calls to closure", 3, callLog.size());
- final Iterator iter = callLog.iterator();
- for (int i = 4; i >= 0; i -= 2) {
- assertEquals("wrong argument passed to closure", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests stepping through a range with a closure.
- */
- public void testStepByOneWithClosure() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(1, 5);
- range.step(1, closure);
-
- assertEquals("wrong number of calls to closure", 5, callLog.size());
- final Iterator iter = callLog.iterator();
- for (int i = 1; i <= 5; i++) {
- assertEquals("wrong argument passed to closure", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests stepping through a reversed range by one with a closure.
- */
- public void testReverseStepByOneWithClosure() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(5, 1);
- range.step(1, closure);
-
- assertEquals("wrong number of calls to closure", 5, callLog.size());
- final Iterator iter = callLog.iterator();
- for (int i = 5; i >= 1; i--) {
- assertEquals("wrong argument passed to closure", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests stepping backwards through a range with a closure.
- */
- public void testNegativeStepByOneWithClosure() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(1, 5);
- range.step(-1, closure);
-
- assertEquals("wrong number of calls to closure", 5, callLog.size());
- final Iterator iter = callLog.iterator();
- for (int i = 5; i >= 1; i--) {
- assertEquals("wrong argument passed to closure", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests stepping backwards through a reversed range with a closure.
- */
- public void testNegativeReverseStepByOneWithClosure() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(5, 1);
- range.step(-1, closure);
-
- assertEquals("wrong number of calls to closure", 5, callLog.size());
- final Iterator iter = callLog.iterator();
- for (int i = 1; i <= 5; i++) {
- assertEquals("wrong argument passed to closure", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests stepping backwards through a range with a step size greater than the range size.
- */
- public void testStepLargerThanRange() {
- final List callLog = new ArrayList();
- final Closure closure = new RecordingClosure(callLog);
-
- final Range range = createRange(1, 5);
-
- range.step(6, closure);
- assertEquals("wrong number of calls to closure", 1, callLog.size());
- assertEquals("wrong value", createValue(1), callLog.get(0));
-
- final List stepList = range.step(6);
- assertEquals("wrong number of values in result", 1, stepList.size());
- assertEquals("wrong value", createValue(1), callLog.get(0));
- }
-
- /**
- * Tests stepping through a range by one.
- */
- public void testStepByOne() {
- final Range range = createRange(1, 5);
- final List result = range.step(1);
-
- assertEquals("wrong number of calls", 5, result.size());
- final Iterator iter = result.iterator();
- for (int i = 1; i <= 5; i++) {
- assertEquals("incorrect value in result", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests stepping through a range by two.
- */
- public void testStepByTwo() {
- final Range range = createRange(1, 5);
- final List result = range.step(2);
-
- assertEquals("wrong number of calls", 3, result.size());
- final Iterator iter = result.iterator();
- for (int i = 1; i <= 5; i += 2) {
- assertEquals("incorrect value in result", createValue(i), iter.next());
- }
- }
-
- /**
- * Tests getting the size.
- */
- public void testSize() {
- Range range = createRange(0, 10);
- assertEquals("Size of " + range, 11, range.size());
- range = createRange(0, 1);
- assertEquals("Size of " + range, 2, range.size());
- range = createRange(0, 0);
- assertEquals("Size of " + range, 1, range.size());
- }
-
- /**
- * Tests asking for an index outside of the valid range
- */
- public void testGetOutOfRange() {
- Range r = createRange(10, 20);
-
- try {
- r.get(-1);
- fail("Should have thrown IndexOutOfBoundsException");
- }
- catch (IndexOutOfBoundsException e) {
- assertTrue("expected exception thrown", true);
- }
- try {
- r.get(11);
- fail("Should have thrown IndexOutOfBoundsException");
- }
- catch (IndexOutOfBoundsException e) {
- assertTrue("expected exception thrown", true);
- }
-
- }
-
- /**
- * Tests getting a sub list.
- */
- public void testSubList() {
- Range range = createRange(0, 5);
-
- List subList = range.subList(2, 4);
- assertEquals("size", 2, subList.size());
-
- assertTrue("sublist not a range", subList instanceof Range);
- Range subListRange = (Range) subList;
-
- assertEquals("from", createValue(2), subListRange.getFrom());
- assertEquals("to", createValue(3), subListRange.getTo());
-
- subList = range.subList(0, 6);
- assertEquals("size", 6, subList.size());
-
- assertTrue("sublist not a range", subList instanceof Range);
- subListRange = (Range) subList;
-
- assertEquals("from", createValue(0), subListRange.getFrom());
- assertEquals("to", createValue(5), subListRange.getTo());
- }
-
- /**
- * Tests creating a sub list with a negative "from" index.
- */
- public void testSubListNegativeFrom() {
- try {
- final Range range = createRange(1, 5);
- range.subList(-1, 3);
- fail("accepted sub list with negative index");
- }
- catch (IndexOutOfBoundsException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests creating a sub list with an out of range "to" index.
- */
- public void testSubListOutOfRangeTo() {
- try {
- final Range range = createRange(0, 3);
- range.subList(0, 5);
- fail("accepted sub list with invalid 'to'");
- }
- catch (IndexOutOfBoundsException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests creating a sub list with "from" grater than "to."
- */
- public void testSubListFromGreaterThanTo() {
- try {
- final Range range = createRange(1, 5);
- range.subList(3, 2);
- fail("accepted sub list with 'from' greater than 'to'");
- }
- catch (IllegalArgumentException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests creating an empty sub list.
- */
- public void testEmptySubList() {
- final Range range = createRange(1, 5);
-
- List subList = range.subList(0, 0);
- assertEquals("wrong number of elements in sub list", 0, subList.size());
-
- subList = range.subList(2, 2);
- assertEquals("wrong number of elements in sub list", 0, subList.size());
- }
-
- /**
- * Tests iterating over a non-reversed range.
- */
- public void testIterate() {
- final Range range = createRange(1, 5);
- int next = 1;
- final Iterator iter = range.iterator();
- while (iter.hasNext()) {
- final Object value = iter.next();
- assertEquals("wrong next value", createValue(next++), value);
- }
- assertEquals("wrong number of elements in iteration", 6, next);
- assertNull("got element after iterator finished", iter.next());
- }
-
- /**
- * Tests removing an element from the range using an iterator (not supported).
- */
- public void testRemoveFromIterator() {
- final Range range = createRange(1, 5);
-
- try {
- final Iterator iter = range.iterator();
- iter.remove();
- fail("successfully removed an element using an iterator");
- }
- catch (UnsupportedOperationException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests iterating over a reversed range.
- */
- public void testIterateReversed() {
- final Range range = createRange(5, 1);
- int next = 5;
- for (Iterator iter = range.iterator(); iter.hasNext();) {
- assertEquals("wrong number", createValue(next--), iter.next());
- }
- assertEquals("wrong number of elements in iteration", 0, next);
- }
-
- /**
- * Tests creating an <code>IntRange</code> with from > to.
- */
- public void testFromGreaterThanTo() {
- final int from = 9;
- final int to = 0;
- final Range range = createRange(from, to);
-
- assertTrue("range not reversed", range.isReverse());
-
- // make sure to/from are swapped
- assertEquals("from incorrect", createValue(to), range.getFrom());
- assertEquals("to incorrect", createValue(from), range.getTo());
-
- assertEquals("wrong size", 10, range.size());
-
- assertEquals("wrong first element", createValue(9), range.get(0));
- assertEquals("wrong last element", createValue(0), range.get(9));
- }
-
- /**
- * Tests creating an <code>IntRange</code> with from == to.
- */
- public void testFromEqualsTo() {
- final Range range = createRange(5, 5);
-
- assertFalse("range reversed", range.isReverse());
- assertEquals("wrong size", 1, range.size());
- }
-
- /**
- * Tests creating an <code>IntRange</code> with from < to.
- */
- public void testFromLessThanTo() {
- final int from = 1;
- final int to = 4;
- final Range range = createRange(from, to);
-
- assertFalse("range reversed", range.isReverse());
-
- assertEquals("to incorrect", createValue(from), range.getFrom());
- assertEquals("from incorrect", createValue(to), range.getTo());
-
- assertEquals("wrong size", 4, range.size());
- }
-
- /**
- * Making a range equal a list is not actually possible, since list.equals(range) will not evaluate to
- * <code>true</code> and <code>equals</code> should be symmetric.
- */
- public void testEqualsList() {
- final List list = new ArrayList();
- list.add(createValue(1));
- list.add(createValue(2));
-
- final Range range = createRange(1, 2);
-
- // cast to Object to test routing through equals(Object)
- assertTrue("range does not equal list", range.equals((Object) list));
- assertTrue("list does not equal range", list.equals(range));
- assertEquals("hash codes are not equal", range.hashCode(), list.hashCode());
-
- // compare lists that are the same size but contain different elements
- list.set(0, createValue(3));
- assertFalse("range equals list", range.equals(list));
- assertFalse("list equals range", list.equals(range));
- assertFalse("hash codes are equal", range.hashCode() == list.hashCode());
-
- // compare a list longer than the range
- list.set(0, createValue(1));
- list.add(createValue(3));
- assertFalse("range equals list", range.equals(list));
- assertFalse("list equals range", list.equals(range));
- assertFalse("hash are equal", range.hashCode() == list.hashCode());
-
- // compare a list shorter than the range
- list.remove(2);
- list.remove(1);
- assertFalse("range equals list", range.equals(list));
- assertFalse("list equals range", list.equals(range));
- assertFalse("hash are equal", range.hashCode() == list.hashCode());
- }
-
- /**
- * Tests comparing {@link Range} to an object that is not a {@link Range}.
- */
- public void testEqualsNonRange() {
- final Range range = createRange(1, 5);
- assertFalse("range equal to string", range.equals("hello"));
- }
-
- /**
- * Tests comparing a {@link Range} cast to an {@link Object}
- */
- public void testEqualsRangeAsObject() {
- final Range range1 = createRange(1, 5);
- final Range range2 = createRange(1, 5);
- assertTrue("ranges not equal", range1.equals((Object) range2));
- }
-
- /**
- * Tests comparing two {@link Range}s to each other.
- */
- public void testEqualsRange() {
- final Range range1 = createRange(1, 5);
- Range range2 = createRange(1, 5);
- assertTrue("ranges not equal", range1.equals((Object) range2));
- assertTrue("ranges not equal", range2.equals((Object) range1));
- assertEquals("hash codes not equal", range1.hashCode(), range2.hashCode());
-
- range2 = createRange(0, 5);
- assertFalse("ranges equal", range1.equals((Object) range2));
- assertFalse("ranges equal", range2.equals((Object) range1));
- assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
-
- range2 = createRange(1, 6);
- assertFalse("ranges equal", range1.equals((Object) range2));
- assertFalse("ranges equal", range2.equals((Object) range1));
- assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
-
- range2 = createRange(0, 6);
- assertFalse("ranges equal", range1.equals((Object) range2));
- assertFalse("ranges equal", range2.equals((Object) range1));
- assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
-
- range2 = createRange(2, 4);
- assertFalse("ranges equal", range1.equals((Object) range2));
- assertFalse("ranges equal", range2.equals((Object) range1));
- assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
-
- range2 = createRange(5, 1);
- assertFalse("ranges equal", range1.equals((Object) range2));
- assertFalse("ranges equal", range2.equals((Object) range1));
- assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
- }
-
- /**
- * Tests <code>toString</code> and <code>inspect</code>
- */
- public void testToStringAndInspect() {
- Range range = createRange(1, 5);
- String expected = range.getFrom() + ".." + range.getTo();
- assertEquals("wrong string representation", expected, range.toString());
- assertEquals("wrong string representation", expected, range.inspect());
-
- range = createRange(5, 1);
- expected = range.getTo() + ".." + range.getFrom();
- assertEquals("wrong string representation", expected, range.toString());
- assertEquals("wrong string representation", expected, range.inspect());
- }
-
- /**
- * Tests <code>getFrom</code> and <code>getTo</code>.
- */
- public void testGetFromAndTo() {
- final int from = 1, to = 5;
- final Range range = createRange(from, to);
-
- assertEquals("wrong 'from' value", createValue(from), range.getFrom());
- assertEquals("wrong 'to' value", createValue(to), range.getTo());
- }
-
- /**
- * Tests comparing a {@link Range} to <code>null</code>.
- */
- public void testEqualsNull() {
- final Range range = createRange(1, 5);
- assertFalse("range equal to null", range.equals(null));
- assertFalse("range equal to null Object", range.equals((Object) null));
- assertFalse("range equal to null Range", range.equals((Range) null));
- assertFalse("range equal to null List", range.equals((List) null));
- }
-
- /**
- * Tests attempting to add a value to a range.
- */
- public void testAddValue() {
- try {
- final Range range = createRange(1, 5);
- range.add(createValue(20));
- fail("expected exception not thrown");
- }
- catch (UnsupportedOperationException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- /**
- * Tests attempting to remove a value from a range.
- */
- public void testRemoveValue() {
- try {
- final Range range = createRange(1, 5);
- range.remove(0);
- fail("expected exception not thrown");
- }
- catch (UnsupportedOperationException e) {
- assertTrue("expected exception thrown", true);
- }
- }
-
- private void doTestContains(int from, int to, Range range) {
- // test integers
- assertTrue("missing 'from' value", range.contains(createValue(from)));
- assertTrue("missing 'to' value", range.contains(createValue(to)));
- assertTrue("missing mid point", range.contains(createValue((from + to) / 2)));
- assertFalse("contains out of range value", range.contains(createValue(from - 1)));
- assertFalse("contains out of range value", range.contains(createValue(to + 1)));
-
- // test ranges
- assertTrue("missing same range", range.containsAll(createRange(from, to)));
- assertTrue("missing same range", range.containsAll(createRange(to, from)));
- assertTrue("missing strict subset", range.containsAll(createRange(from + 1, to - 1)));
- assertTrue("missing subset", range.containsAll(createRange(from, to - 1)));
- assertTrue("missing subset", range.containsAll(createRange(from + 1, to)));
- assertFalse("contains non-subset", range.containsAll(createRange(from - 1, to)));
- assertFalse("contains non-subset", range.containsAll(createRange(from, to + 1)));
- assertFalse("contains non-subset", range.containsAll(createRange(from - 2, from - 1)));
-
- // ranges don't contain other ranges
- assertFalse("range contains sub-range", range.contains(createRange(from + 1, to - 1)));
-
- // test list
- final List list = new ArrayList();
- list.add(createValue(from));
- list.add(createValue(to));
- assertTrue("missing strict subset", range.containsAll(list));
-
- // test non-integer number
- assertFalse("contains Float", range.contains(new Float((to + from) / 2.0 + 0.3)));
- }
-
- /**
- * Tests whether the range contains a {@link Comparable} object which is not comparable with a {@link Number}.
- */
- public void testContainsIncompatibleComparable() {
- final Range range = createRange(1, 5);
- assertFalse("range contains string", range.contains("hello"));
- assertFalse("range contains string", range.contains("1"));
- }
-
- /**
- * Tests whether the range contains a non-comparable object.
- */
- public void testContainsNonComparable() {
- final Range range = createRange(1, 5);
- assertFalse("range contains hash map", range.contains(new HashMap()));
- }
-
- /**
- * Tests whether a {@link Range} contains another {@link Range} or a specific integer.
- */
- public void testContains() {
- final int from = 1, to = 5;
- doTestContains(from, to, createRange(from, to));
- doTestContains(from, to, createRange(to, from));
- }
-
- /**
- * Tests <code>get</code> from a reversed range.
- */
- public void testGetFromReversedRange() {
- final Range range = createRange(5, 1);
-
- for (int i = 0; i < 5; i++) {
- assertEquals("wrong element at position " + i, createValue(5 - i), range.get(i));
- }
- }
-
- /**
- * Tests getting values from the range.
- */
- public void testGet() {
- final Range range = createRange(10, 20);
- for (int i = 0; i <= 10; i++) {
- assertEquals("Item at index: " + i, createValue(i + 10), range.get(i));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/NumberRangeTestCase.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/NumberRangeTestCase.java b/src/test/groovy/lang/NumberRangeTestCase.java
new file mode 100644
index 0000000..c3ea57f
--- /dev/null
+++ b/src/test/groovy/lang/NumberRangeTestCase.java
@@ -0,0 +1,749 @@
+/*
+ * 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 groovy.lang;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+/**
+ * Provides unit tests for ranges of numbers.
+ */
+public abstract class NumberRangeTestCase extends TestCase {
+
+ /**
+ * legacy ranges in Groovy hush exceptions and return null when exhausted
+ */
+ protected boolean expectNullFromExhausted = false;
+
+ /**
+ * Records the values passed to a closure.
+ */
+ protected static class RecordingClosure extends Closure {
+ /**
+ * Holds the values passed in
+ */
+ final List callLog;
+
+ /**
+ * Creates a new <code>RecordingClosure</code>
+ *
+ * @param callLog is filled with the values passed to <code>doCall</code>
+ */
+ RecordingClosure(final List callLog) {
+ super(null);
+ this.callLog = callLog;
+ }
+
+ /**
+ * Stores <code>params</code> in the <code>callLog</code>.
+ *
+ * @param params the parameters.
+ * @return null
+ */
+ public Object doCall(final Object params) {
+ callLog.add(params);
+ return null;
+ }
+ }
+
+ /**
+ * Creates a {@link Range} to test.
+ *
+ * @param from the first value in the range.
+ * @param to the last value in the range.
+ * @return a {@link Range} to test
+ */
+ protected abstract Range createRange(final int from, final int to);
+
+ /**
+ * Creates a value in the range.
+ *
+ * @param value the value to create.
+ * @return a value in the range.
+ */
+ protected abstract Comparable createValue(final int value);
+
+ /**
+ * Tests <code>hashCode</code> and <code>equals</code> comparing one {@link IntRange} to another {@link IntRange}.
+ */
+ public final void testHashCodeAndEquals() {
+ Range a = createRange(1, 11);
+ Range b = createRange(1, 11);
+ Range c = createRange(2, 11);
+
+ assertEquals("hashcode", a.hashCode(), b.hashCode());
+ assertTrue("hashcode", a.hashCode() != c.hashCode());
+
+ assertEquals("a and b", a, b);
+ assertFalse("a != c", a.equals(c));
+ }
+
+ /**
+ * Tests using different classes for 'from' and 'to'.
+ */
+ public void testDifferentClassesForFromAndTo() {
+ final Integer from = new Integer(1);
+ final Comparable to = createValue(5);
+ final Range range = new ObjectRange(from, to);
+
+ checkRangeValues(from, to, range);
+ }
+
+ protected void checkRangeValues(Integer from, Comparable to, Range range) {
+ assertEquals("wrong 'from' value", from, range.getFrom());
+ assertEquals("wrong 'to' value", to, range.getTo());
+ }
+
+ /**
+ * Tests a <code>null</code> 'from' value.
+ */
+ public void testNullFrom() {
+ try {
+ new ObjectRange(null, createValue(5));
+ fail("null 'from' accepted");
+ }
+ catch (IllegalArgumentException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests a <code>null</code> 'to' value.
+ */
+ public void testNullTo() {
+ try {
+ new ObjectRange(createValue(23), null);
+ fail("null 'to' accepted");
+ }
+ catch (IllegalArgumentException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests stepping through a range by two with a closure.
+ */
+ public void testStepByTwoWithClosure() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(0, 4);
+ range.step(2, closure);
+
+ assertEquals("wrong number of calls to closure", 3, callLog.size());
+ final Iterator iter = callLog.iterator();
+ for (int i = 0; i <= 4; i += 2) {
+ assertEquals("wrong argument passed to closure", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests iterating over a one-element range.
+ */
+ public void testOneElementRange() {
+ final Range range = createRange(1, 1);
+ int next = 1;
+ for (Object value : range) {
+ final Number number = (Number) value;
+ assertEquals("wrong number", createValue(next++), number);
+ }
+ assertEquals("wrong number of elements in iteration", 2, next);
+ }
+
+ /**
+ * Tests stepping through a reversed range by two with a closure.
+ */
+ public void testReverseStepByTwoWithClosure() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(4, 0);
+ range.step(2, closure);
+
+ assertEquals("wrong number of calls to closure", 3, callLog.size());
+ final Iterator iter = callLog.iterator();
+ for (int i = 4; i >= 0; i -= 2) {
+ assertEquals("wrong argument passed to closure", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests stepping through a range with a closure.
+ */
+ public void testStepByOneWithClosure() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(1, 5);
+ range.step(1, closure);
+
+ assertEquals("wrong number of calls to closure", 5, callLog.size());
+ final Iterator iter = callLog.iterator();
+ for (int i = 1; i <= 5; i++) {
+ assertEquals("wrong argument passed to closure", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests stepping through a reversed range by one with a closure.
+ */
+ public void testReverseStepByOneWithClosure() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(5, 1);
+ range.step(1, closure);
+
+ assertEquals("wrong number of calls to closure", 5, callLog.size());
+ final Iterator iter = callLog.iterator();
+ for (int i = 5; i >= 1; i--) {
+ assertEquals("wrong argument passed to closure", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests stepping backwards through a range with a closure.
+ */
+ public void testNegativeStepByOneWithClosure() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(1, 5);
+ range.step(-1, closure);
+
+ assertEquals("wrong number of calls to closure", 5, callLog.size());
+ final Iterator iter = callLog.iterator();
+ for (int i = 5; i >= 1; i--) {
+ assertEquals("wrong argument passed to closure", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests stepping backwards through a reversed range with a closure.
+ */
+ public void testNegativeReverseStepByOneWithClosure() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(5, 1);
+ range.step(-1, closure);
+
+ assertEquals("wrong number of calls to closure", 5, callLog.size());
+ final Iterator iter = callLog.iterator();
+ for (int i = 1; i <= 5; i++) {
+ assertEquals("wrong argument passed to closure", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests stepping backwards through a range with a step size greater than the range size.
+ */
+ public void testStepLargerThanRange() {
+ final List callLog = new ArrayList();
+ final Closure closure = new RecordingClosure(callLog);
+
+ final Range range = createRange(1, 5);
+
+ range.step(6, closure);
+ assertEquals("wrong number of calls to closure", 1, callLog.size());
+ assertEquals("wrong value", createValue(1), callLog.get(0));
+
+ final List stepList = range.step(6);
+ assertEquals("wrong number of values in result", 1, stepList.size());
+ assertEquals("wrong value", createValue(1), callLog.get(0));
+ }
+
+ /**
+ * Tests stepping through a range by one.
+ */
+ public void testStepByOne() {
+ final Range range = createRange(1, 5);
+ final List result = range.step(1);
+
+ assertEquals("wrong number of calls", 5, result.size());
+ final Iterator iter = result.iterator();
+ for (int i = 1; i <= 5; i++) {
+ assertEquals("incorrect value in result", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests stepping through a range by two.
+ */
+ public void testStepByTwo() {
+ final Range range = createRange(1, 5);
+ final List result = range.step(2);
+
+ assertEquals("wrong number of calls", 3, result.size());
+ final Iterator iter = result.iterator();
+ for (int i = 1; i <= 5; i += 2) {
+ assertEquals("incorrect value in result", createValue(i), iter.next());
+ }
+ }
+
+ /**
+ * Tests getting the size.
+ */
+ public void testSize() {
+ Range range = createRange(0, 10);
+ assertEquals("Size of " + range, 11, range.size());
+ range = createRange(0, 1);
+ assertEquals("Size of " + range, 2, range.size());
+ range = createRange(0, 0);
+ assertEquals("Size of " + range, 1, range.size());
+ }
+
+ /**
+ * Tests asking for an index outside of the valid range
+ */
+ public void testGetOutOfRange() {
+ Range r = createRange(10, 20);
+
+ try {
+ r.get(-1);
+ fail("Should have thrown IndexOutOfBoundsException");
+ }
+ catch (IndexOutOfBoundsException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ try {
+ r.get(11);
+ fail("Should have thrown IndexOutOfBoundsException");
+ }
+ catch (IndexOutOfBoundsException e) {
+ assertTrue("expected exception thrown", true);
+ }
+
+ }
+
+ /**
+ * Tests getting a sub list.
+ */
+ public void testSubList() {
+ Range range = createRange(0, 5);
+
+ List subList = range.subList(2, 4);
+ assertEquals("size", 2, subList.size());
+
+ assertTrue("sublist not a range", subList instanceof Range);
+ Range subListRange = (Range) subList;
+
+ assertEquals("from", createValue(2), subListRange.getFrom());
+ assertEquals("to", createValue(3), subListRange.getTo());
+
+ subList = range.subList(0, 6);
+ assertEquals("size", 6, subList.size());
+
+ assertTrue("sublist not a range", subList instanceof Range);
+ subListRange = (Range) subList;
+
+ assertEquals("from", createValue(0), subListRange.getFrom());
+ assertEquals("to", createValue(5), subListRange.getTo());
+ }
+
+ /**
+ * Tests creating a sub list with a negative "from" index.
+ */
+ public void testSubListNegativeFrom() {
+ try {
+ final Range range = createRange(1, 5);
+ range.subList(-1, 3);
+ fail("accepted sub list with negative index");
+ }
+ catch (IndexOutOfBoundsException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests creating a sub list with an out of range "to" index.
+ */
+ public void testSubListOutOfRangeTo() {
+ try {
+ final Range range = createRange(0, 3);
+ range.subList(0, 5);
+ fail("accepted sub list with invalid 'to'");
+ }
+ catch (IndexOutOfBoundsException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests creating a sub list with "from" grater than "to."
+ */
+ public void testSubListFromGreaterThanTo() {
+ try {
+ final Range range = createRange(1, 5);
+ range.subList(3, 2);
+ fail("accepted sub list with 'from' greater than 'to'");
+ }
+ catch (IllegalArgumentException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests creating an empty sub list.
+ */
+ public void testEmptySubList() {
+ final Range range = createRange(1, 5);
+
+ List subList = range.subList(0, 0);
+ assertEquals("wrong number of elements in sub list", 0, subList.size());
+
+ subList = range.subList(2, 2);
+ assertEquals("wrong number of elements in sub list", 0, subList.size());
+ }
+
+ /**
+ * Tests iterating over a non-reversed range.
+ */
+ public void testIterate() {
+ final Range range = createRange(1, 5);
+ int next = 1;
+ final Iterator iter = range.iterator();
+ while (iter.hasNext()) {
+ final Object value = iter.next();
+ assertEquals("wrong next value", createValue(next++), value);
+ }
+ assertEquals("wrong number of elements in iteration", 6, next);
+ if (expectNullFromExhausted) {
+ assertNull("got element after iterator finished", iter.next());
+ } else {
+ try {
+ iter.next();
+ fail("successfully got element from exhausted iterator");
+ } catch(NoSuchElementException ignore) {
+ }
+ }
+ }
+
+ /**
+ * Tests removing an element from the range using an iterator (not supported).
+ */
+ public void testRemoveFromIterator() {
+ final Range range = createRange(1, 5);
+
+ try {
+ final Iterator iter = range.iterator();
+ iter.remove();
+ fail("successfully removed an element using an iterator");
+ }
+ catch (UnsupportedOperationException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests iterating over a reversed range.
+ */
+ public void testIterateReversed() {
+ final Range range = createRange(5, 1);
+ int next = 5;
+ for (Object value : range) {
+ assertEquals("wrong number", createValue(next--), value);
+ }
+ assertEquals("wrong number of elements in iteration", 0, next);
+ }
+
+ /**
+ * Tests creating an <code>IntRange</code> with from > to.
+ */
+ public void testFromGreaterThanTo() {
+ final int from = 9;
+ final int to = 0;
+ final Range range = createRange(from, to);
+
+ assertTrue("range not reversed", range.isReverse());
+
+ // make sure to/from are swapped
+ assertEquals("from incorrect", createValue(to), range.getFrom());
+ assertEquals("to incorrect", createValue(from), range.getTo());
+
+ assertEquals("wrong size", 10, range.size());
+
+ assertEquals("wrong first element", createValue(9), range.get(0));
+ assertEquals("wrong last element", createValue(0), range.get(9));
+ }
+
+ /**
+ * Tests creating an <code>IntRange</code> with from == to.
+ */
+ public void testFromEqualsTo() {
+ final Range range = createRange(5, 5);
+
+ assertFalse("range reversed", range.isReverse());
+ assertEquals("wrong size", 1, range.size());
+ }
+
+ /**
+ * Tests creating an <code>IntRange</code> with from < to.
+ */
+ public void testFromLessThanTo() {
+ final int from = 1;
+ final int to = 4;
+ final Range range = createRange(from, to);
+
+ assertFalse("range reversed", range.isReverse());
+
+ assertEquals("to incorrect", createValue(from), range.getFrom());
+ assertEquals("from incorrect", createValue(to), range.getTo());
+
+ assertEquals("wrong size", 4, range.size());
+ }
+
+ /**
+ * Making a range equal a list is not actually possible, since list.equals(range) will not evaluate to
+ * <code>true</code> and <code>equals</code> should be symmetric.
+ */
+ public void testEqualsList() {
+ final List list = new ArrayList();
+ list.add(createValue(1));
+ list.add(createValue(2));
+
+ final Range range = createRange(1, 2);
+
+ // cast to Object to test routing through equals(Object)
+ assertTrue("range does not equal list", range.equals((Object) list));
+ assertTrue("list does not equal range", list.equals(range));
+ assertEquals("hash codes are not equal", range.hashCode(), list.hashCode());
+
+ // compare lists that are the same size but contain different elements
+ list.set(0, createValue(3));
+ assertFalse("range equals list", range.equals(list));
+ assertFalse("list equals range", list.equals(range));
+ assertFalse("hash codes are equal", range.hashCode() == list.hashCode());
+
+ // compare a list longer than the range
+ list.set(0, createValue(1));
+ list.add(createValue(3));
+ assertFalse("range equals list", range.equals(list));
+ assertFalse("list equals range", list.equals(range));
+ assertFalse("hash are equal", range.hashCode() == list.hashCode());
+
+ // compare a list shorter than the range
+ list.remove(2);
+ list.remove(1);
+ assertFalse("range equals list", range.equals(list));
+ assertFalse("list equals range", list.equals(range));
+ assertFalse("hash are equal", range.hashCode() == list.hashCode());
+ }
+
+ /**
+ * Tests comparing {@link Range} to an object that is not a {@link Range}.
+ */
+ public void testEqualsNonRange() {
+ final Range range = createRange(1, 5);
+ assertFalse("range equal to string", range.equals("hello"));
+ }
+
+ /**
+ * Tests comparing a {@link Range} cast to an {@link Object}
+ */
+ public void testEqualsRangeAsObject() {
+ final Range range1 = createRange(1, 5);
+ final Range range2 = createRange(1, 5);
+ assertTrue("ranges not equal", range1.equals((Object) range2));
+ }
+
+ /**
+ * Tests comparing two {@link Range}s to each other.
+ */
+ public void testEqualsRange() {
+ final Range range1 = createRange(1, 5);
+ Range range2 = createRange(1, 5);
+ assertTrue("ranges not equal", range1.equals((Object) range2));
+ assertTrue("ranges not equal", range2.equals((Object) range1));
+ assertEquals("hash codes not equal", range1.hashCode(), range2.hashCode());
+
+ range2 = createRange(0, 5);
+ assertFalse("ranges equal", range1.equals((Object) range2));
+ assertFalse("ranges equal", range2.equals((Object) range1));
+ assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
+
+ range2 = createRange(1, 6);
+ assertFalse("ranges equal", range1.equals((Object) range2));
+ assertFalse("ranges equal", range2.equals((Object) range1));
+ assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
+
+ range2 = createRange(0, 6);
+ assertFalse("ranges equal", range1.equals((Object) range2));
+ assertFalse("ranges equal", range2.equals((Object) range1));
+ assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
+
+ range2 = createRange(2, 4);
+ assertFalse("ranges equal", range1.equals((Object) range2));
+ assertFalse("ranges equal", range2.equals((Object) range1));
+ assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
+
+ range2 = createRange(5, 1);
+ assertFalse("ranges equal", range1.equals((Object) range2));
+ assertFalse("ranges equal", range2.equals((Object) range1));
+ assertFalse("hash codes equal", range1.hashCode() == range2.hashCode());
+ }
+
+ /**
+ * Tests <code>toString</code> and <code>inspect</code>
+ */
+ public void testToStringAndInspect() {
+ Range range = createRange(1, 5);
+ String expected = range.getFrom() + ".." + range.getTo();
+ assertEquals("wrong string representation", expected, range.toString());
+ assertEquals("wrong string representation", expected, range.inspect());
+
+ range = createRange(5, 1);
+ expected = range.getTo() + ".." + range.getFrom();
+ assertEquals("wrong string representation", expected, range.toString());
+ assertEquals("wrong string representation", expected, range.inspect());
+ }
+
+ /**
+ * Tests <code>getFrom</code> and <code>getTo</code>.
+ */
+ public void testGetFromAndTo() {
+ final int from = 1, to = 5;
+ final Range range = createRange(from, to);
+
+ assertEquals("wrong 'from' value", createValue(from), range.getFrom());
+ assertEquals("wrong 'to' value", createValue(to), range.getTo());
+ }
+
+ /**
+ * Tests comparing a {@link Range} to <code>null</code>.
+ */
+ public void testEqualsNull() {
+ final Range range = createRange(1, 5);
+ assertFalse("range equal to null", range.equals(null));
+ assertFalse("range equal to null Object", range.equals((Object) null));
+ assertFalse("range equal to null Range", range.equals((Range) null));
+ assertFalse("range equal to null List", range.equals((List) null));
+ }
+
+ /**
+ * Tests attempting to add a value to a range.
+ */
+ public void testAddValue() {
+ try {
+ final Range range = createRange(1, 5);
+ range.add(createValue(20));
+ fail("expected exception not thrown");
+ }
+ catch (UnsupportedOperationException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ /**
+ * Tests attempting to remove a value from a range.
+ */
+ public void testRemoveValue() {
+ try {
+ final Range range = createRange(1, 5);
+ range.remove(0);
+ fail("expected exception not thrown");
+ }
+ catch (UnsupportedOperationException e) {
+ assertTrue("expected exception thrown", true);
+ }
+ }
+
+ private void doTestContains(int from, int to, Range range) {
+ // test integers
+ assertTrue("missing 'from' value", range.contains(createValue(from)));
+ assertTrue("missing 'to' value", range.contains(createValue(to)));
+ assertTrue("missing mid point", range.contains(createValue((from + to) / 2)));
+ assertFalse("contains out of range value", range.contains(createValue(from - 1)));
+ assertFalse("contains out of range value", range.contains(createValue(to + 1)));
+
+ // test ranges
+ assertTrue("missing same range", range.containsAll(createRange(from, to)));
+ assertTrue("missing same range", range.containsAll(createRange(to, from)));
+ assertTrue("missing strict subset", range.containsAll(createRange(from + 1, to - 1)));
+ assertTrue("missing subset", range.containsAll(createRange(from, to - 1)));
+ assertTrue("missing subset", range.containsAll(createRange(from + 1, to)));
+ assertFalse("contains non-subset", range.containsAll(createRange(from - 1, to)));
+ assertFalse("contains non-subset", range.containsAll(createRange(from, to + 1)));
+ assertFalse("contains non-subset", range.containsAll(createRange(from - 2, from - 1)));
+
+ // ranges don't contain other ranges
+ assertFalse("range contains sub-range", range.contains(createRange(from + 1, to - 1)));
+
+ // test list
+ final List list = new ArrayList();
+ list.add(createValue(from));
+ list.add(createValue(to));
+ assertTrue("missing strict subset", range.containsAll(list));
+
+ // test non-integer number
+ assertFalse("contains Float", range.contains(new Float((to + from) / 2.0 + 0.3)));
+ }
+
+ /**
+ * Tests whether the range contains a {@link Comparable} object which is not comparable with a {@link Number}.
+ */
+ public void testContainsIncompatibleComparable() {
+ final Range range = createRange(1, 5);
+ assertFalse("range contains string", range.contains("hello"));
+ assertFalse("range contains string", range.contains("1"));
+ }
+
+ /**
+ * Tests whether the range contains a non-comparable object.
+ */
+ public void testContainsNonComparable() {
+ final Range range = createRange(1, 5);
+ assertFalse("range contains hash map", range.contains(new HashMap()));
+ }
+
+ /**
+ * Tests whether a {@link Range} contains another {@link Range} or a specific integer.
+ */
+ public void testContains() {
+ final int from = 1, to = 5;
+ doTestContains(from, to, createRange(from, to));
+ doTestContains(from, to, createRange(to, from));
+ }
+
+ /**
+ * Tests <code>get</code> from a reversed range.
+ */
+ public void testGetFromReversedRange() {
+ final Range range = createRange(5, 1);
+
+ for (int i = 0; i < 5; i++) {
+ assertEquals("wrong element at position " + i, createValue(5 - i), range.get(i));
+ }
+ }
+
+ /**
+ * Tests getting values from the range.
+ */
+ public void testGet() {
+ final Range range = createRange(10, 20);
+ for (int i = 0; i <= 10; i++) {
+ assertEquals("Item at index: " + i, createValue(i + 10), range.get(i));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/ShortObjectRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/ShortObjectRangeTest.java b/src/test/groovy/lang/ShortObjectRangeTest.java
new file mode 100644
index 0000000..a2d0ccc
--- /dev/null
+++ b/src/test/groovy/lang/ShortObjectRangeTest.java
@@ -0,0 +1,46 @@
+/*
+ * 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 groovy.lang;
+
+/**
+ * Tests {@link ObjectRange}s of {@link Short}s.
+ */
+public class ShortObjectRangeTest extends NumberRangeTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ expectNullFromExhausted = true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Range createRange(int from, int to) {
+ return new ObjectRange(new Short((short) from), new Short((short) to));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Comparable createValue(int value) {
+ return new Integer(value);
+ }
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8311b23a/src/test/groovy/lang/ShortRangeTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/ShortRangeTest.java b/src/test/groovy/lang/ShortRangeTest.java
deleted file mode 100644
index c78b563..0000000
--- a/src/test/groovy/lang/ShortRangeTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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 groovy.lang;
-
-
-/**
- * Tests {@link ObjectRange}s of {@link Short}s.
- *
- * @author $Author$
- */
-public class ShortRangeTest extends NumberRangeTest {
-
- /**
- * {@inheritDoc}
- */
- protected Range createRange(int from, int to) {
- return new ObjectRange(new Short((short) from), new Short((short) to));
- }
-
- /**
- * {@inheritDoc}
- */
- protected Comparable createValue(int value) {
- return new Integer(value);
- }
-}