From da6569b4a6477399bd36213e6da6ec503c148817 Mon Sep 17 00:00:00 2001 From: Henri Yandell Date: Tue, 13 Nov 2007 01:29:10 +0000 Subject: [PATCH] Applying Ben's patch of Brian Egge's improvement in LANG-321 git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@594388 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/commons/lang/math/IntRange.java | 13 +++++++++++++ .../org/apache/commons/lang/math/LongRange.java | 13 +++++++++++++ .../org/apache/commons/lang/math/IntRangeTest.java | 9 +++++++++ .../org/apache/commons/lang/math/LongRangeTest.java | 9 +++++++++ 4 files changed, 44 insertions(+) diff --git a/src/java/org/apache/commons/lang/math/IntRange.java b/src/java/org/apache/commons/lang/math/IntRange.java index 20873368b..bc1a6485b 100644 --- a/src/java/org/apache/commons/lang/math/IntRange.java +++ b/src/java/org/apache/commons/lang/math/IntRange.java @@ -381,4 +381,17 @@ public String toString() { return toString; } + /** + *

Returns an array containing all the integer values in the range.

+ * + * @return the int[] representation of this range + */ + public int[] toArray() { + int[] array = new int[max - min + 1]; + for (int i = 0; i < array.length; i++) { + array[i] = min + i; + } + + return array; + } } diff --git a/src/java/org/apache/commons/lang/math/LongRange.java b/src/java/org/apache/commons/lang/math/LongRange.java index 81f351721..ab571ceab 100644 --- a/src/java/org/apache/commons/lang/math/LongRange.java +++ b/src/java/org/apache/commons/lang/math/LongRange.java @@ -394,4 +394,17 @@ public String toString() { return toString; } + /** + *

Returns an array containing all the long values in the range.

+ * + * @return the long[] representation of this range + */ + public long[] toArray() { + long[] array = new long[(int)(max - min + 1L)]; + for(int i = 0; i < array.length; i++) { + array[i] = min + i; + } + return array; + } + } diff --git a/src/test/org/apache/commons/lang/math/IntRangeTest.java b/src/test/org/apache/commons/lang/math/IntRangeTest.java index a57e0c24f..78bfded01 100644 --- a/src/test/org/apache/commons/lang/math/IntRangeTest.java +++ b/src/test/org/apache/commons/lang/math/IntRangeTest.java @@ -21,6 +21,8 @@ import junit.framework.Test; import junit.framework.TestSuite; +import java.util.Arrays; + /** * Test cases for the {@link IntRange} class. * @@ -160,6 +162,13 @@ public void testContainsIntegerBig() { assertEquals(false, big.containsInteger(Integer.MAX_VALUE - 3)); } + public void testToArray() { + int[] threeItems = new IntRange(3, 5).toArray(); + assertTrue(Arrays.equals(new int[]{3, 4, 5}, threeItems)); + int[] oneItem = new IntRange(4).toArray(); + assertTrue(Arrays.equals(new int[]{4}, oneItem)); + } + //-------------------------------------------------------------------------- } diff --git a/src/test/org/apache/commons/lang/math/LongRangeTest.java b/src/test/org/apache/commons/lang/math/LongRangeTest.java index de2fe78f4..b940a0dc8 100644 --- a/src/test/org/apache/commons/lang/math/LongRangeTest.java +++ b/src/test/org/apache/commons/lang/math/LongRangeTest.java @@ -21,6 +21,8 @@ import junit.framework.Test; import junit.framework.TestSuite; +import java.util.Arrays; + /** * Test cases for the {@link LongRange} class. * @@ -148,6 +150,13 @@ public void testContainsLongBig() { assertEquals(false, big.containsLong(Long.MAX_VALUE - 3)); } + public void testToArray() { + long[] threeItems = new LongRange(3, 5).toArray(); + assertTrue(Arrays.equals(new long[]{3, 4, 5}, threeItems)); + long[] oneItem = new LongRange(4).toArray(); + assertTrue(Arrays.equals(new long[]{4}, oneItem)); + } + //-------------------------------------------------------------------------- }