Repository: commons-lang Updated Branches: refs/heads/master 41bc4cd02 -> 51b2cabf2
LANG-1290: Increase test coverage of org.apache.commons.lang3.ArrayUtils class (closes #217) Increase test coverage of the swap and shift methods. Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/51b2cabf Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/51b2cabf Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/51b2cabf Branch: refs/heads/master Commit: 51b2cabf2c3737de06fc889b39d40240d1b134c2 Parents: 41bc4cd Author: Andrii <[email protected]> Authored: Thu Nov 24 22:46:15 2016 +0200 Committer: pascalschumacher <[email protected]> Committed: Thu Nov 24 22:18:14 2016 +0100 ---------------------------------------------------------------------- .../apache/commons/lang3/ArrayUtilsTest.java | 521 +++++++++++++++++++ 1 file changed, 521 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-lang/blob/51b2cabf/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java index 06ded81..0990b17 100644 --- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java @@ -2162,6 +2162,87 @@ public class ArrayUtilsTest { assertEquals(3, array[0]); assertEquals(2, array[1]); assertEquals(1, array[2]); + + array = new char[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new char[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new char[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + } + + @Test + public void testSwapByte() { + final byte[] array = new byte[] {1, 2, 3}; + ArrayUtils.swap(array, 0, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + } + + @Test + public void testSwapNullByteArray() { + final byte[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyByteArray() { + final byte[] array = new byte[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } + + @Test + public void testSwapByteRange() { + byte[] array = new byte[] {1, 2, 3, 4}; + ArrayUtils.swap(array, 0, 2, 2); + assertEquals(3, array[0]); + assertEquals(4, array[1]); + assertEquals(1, array[2]); + assertEquals(2, array[3]); + + array = new byte[] {1, 2, 3}; + ArrayUtils.swap(array, 0, 3); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new byte[] {1, 2, 3}; + ArrayUtils.swap(array, 0, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new byte[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new byte[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new byte[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); } @Test @@ -2172,6 +2253,20 @@ public class ArrayUtilsTest { assertEquals(2, array[1], 0); assertEquals(1, array[2], 0); } + + @Test + public void testSwapNullFloatArray() { + final float[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyFloatArray() { + final float[] array = new float[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } @Test public void testSwapFloatRange() { @@ -2193,6 +2288,24 @@ public class ArrayUtilsTest { assertEquals(3, array[0], 0); assertEquals(2, array[1], 0); assertEquals(1, array[2], 0); + + array = new float[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0], 0); + assertEquals(2, array[1], 0); + assertEquals(1, array[2], 0); + + array = new float[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0], 0); + assertEquals(2, array[1], 0); + assertEquals(3, array[2], 0); + + array = new float[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0], 0); + assertEquals(2, array[1], 0); + assertEquals(3, array[2], 0); } @Test @@ -2203,6 +2316,20 @@ public class ArrayUtilsTest { assertEquals(2, array[1], 0); assertEquals(1, array[2], 0); } + + @Test + public void testSwapNullDoubleArray() { + final double[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyDoubleArray() { + final double[] array = new double[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } @Test public void testSwapDoubleRange() { @@ -2224,6 +2351,24 @@ public class ArrayUtilsTest { assertEquals(3, array[0], 0); assertEquals(2, array[1], 0); assertEquals(1, array[2], 0); + + array = new double[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0], 0); + assertEquals(2, array[1], 0); + assertEquals(1, array[2], 0); + + array = new double[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0], 0); + assertEquals(2, array[1], 0); + assertEquals(3, array[2], 0); + + array = new double[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0], 0); + assertEquals(2, array[1], 0); + assertEquals(3, array[2], 0); } @Test @@ -2234,6 +2379,20 @@ public class ArrayUtilsTest { assertEquals(2, array[1]); assertEquals(1, array[2]); } + + @Test + public void testSwapNullIntArray() { + final int[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyIntArray() { + final int[] array = new int[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } @Test public void testSwapIntRange() { @@ -2255,6 +2414,24 @@ public class ArrayUtilsTest { assertEquals(3, array[0]); assertEquals(2, array[1]); assertEquals(1, array[2]); + + array = new int[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new int[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new int[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); } @Test @@ -2268,6 +2445,83 @@ public class ArrayUtilsTest { ArrayUtils.swap(array, 1, 0, 2); assertArrayEquals(new int[] {2, 3, 1}, array); } + + @Test + public void testSwapShort() { + final short[] array = new short[] {1, 2, 3}; + ArrayUtils.swap(array, 0, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + } + + @Test + public void testSwapNullShortArray() { + final short[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyShortArray() { + final short[] array = new short[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } + + @Test + public void testSwapShortRange() { + short[] array = new short[] {1, 2, 3, 4}; + ArrayUtils.swap(array, 0, 2, 2); + assertEquals(3, array[0]); + assertEquals(4, array[1]); + assertEquals(1, array[2]); + assertEquals(2, array[3]); + + array = new short[] {1, 2, 3}; + ArrayUtils.swap(array, 3, 0); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new short[] {1, 2, 3}; + ArrayUtils.swap(array, 0, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new short[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new short[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new short[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + } + + @Test + public void testSwapNullCharArray() { + final char[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyCharArray() { + final char[] array = new char[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } @Test public void testSwapLong() { @@ -2277,6 +2531,20 @@ public class ArrayUtilsTest { assertEquals(2, array[1]); assertEquals(1, array[2]); } + + @Test + public void testSwapNullLongArray() { + final long[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyLongArray() { + final long[] array = new long[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } @Test public void testSwapLongRange() { @@ -2298,6 +2566,87 @@ public class ArrayUtilsTest { assertEquals(3, array[0]); assertEquals(2, array[1]); assertEquals(1, array[2]); + + array = new long[] {1, 2, 3}; + ArrayUtils.swap(array, -1, 2, 2); + assertEquals(3, array[0]); + assertEquals(2, array[1]); + assertEquals(1, array[2]); + + array = new long[] {1, 2, 3}; + ArrayUtils.swap(array, 0, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + + array = new long[] {1, 2, 3}; + ArrayUtils.swap(array, -1, -1, 2); + assertEquals(1, array[0]); + assertEquals(2, array[1]); + assertEquals(3, array[2]); + } + + @Test + public void testSwapBoolean() { + final boolean[] array = new boolean[] {true, false, false}; + ArrayUtils.swap(array, 0, 2); + assertFalse(array[0]); + assertFalse(array[1]); + assertTrue(array[2]); + } + + @Test + public void testSwapNullBooleanArray() { + final boolean[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyBooleanArray() { + final boolean[] array = new boolean[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } + + @Test + public void testSwapBooleanRange() { + boolean[] array = new boolean[] {false, false, true, true}; + ArrayUtils.swap(array, 0, 2, 2); + assertTrue(array[0]); + assertTrue(array[1]); + assertFalse(array[2]); + assertFalse(array[3]); + + array = new boolean[] {false, true, false}; + ArrayUtils.swap(array, 0, 3); + assertFalse(array[0]); + assertTrue(array[1]); + assertFalse(array[2]); + + array = new boolean[] {true, true, false}; + ArrayUtils.swap(array, 0, 2, 2); + assertFalse(array[0]); + assertTrue(array[1]); + assertTrue(array[2]); + + array = new boolean[] {true, true, false}; + ArrayUtils.swap(array, -1, 2, 2); + assertFalse(array[0]); + assertTrue(array[1]); + assertTrue(array[2]); + + array = new boolean[] {true, true, false}; + ArrayUtils.swap(array, 0, -1, 2); + assertTrue(array[0]); + assertTrue(array[1]); + assertFalse(array[2]); + + array = new boolean[] {true, true, false}; + ArrayUtils.swap(array, -1, -1, 2); + assertTrue(array[0]); + assertTrue(array[1]); + assertFalse(array[2]); } @Test @@ -2308,6 +2657,20 @@ public class ArrayUtilsTest { assertEquals("2", array[1]); assertEquals("1", array[2]); } + + @Test + public void testSwapNullObjectArray() { + final String[] array = null; + ArrayUtils.swap(array, 0, 2); + assertNull(array); + } + + @Test + public void testSwapEmptyObjectArray() { + final String[] array = new String[0]; + ArrayUtils.swap(array, 0, 2); + assertEquals(0, array.length); + } @Test public void testSwapObjectRange() { @@ -2332,6 +2695,22 @@ public class ArrayUtilsTest { assertEquals("5", array[2]); assertEquals("2", array[3]); assertEquals("1", array[4]); + + array = new String[] {"1", "2", "3", "4", "5"}; + ArrayUtils.swap(array, 2, -2, 3); + assertEquals("3", array[0]); + assertEquals("4", array[1]); + assertEquals("5", array[2]); + assertEquals("2", array[3]); + assertEquals("1", array[4]); + + array = new String[0]; + ArrayUtils.swap(array, 0, 2, 2); + assertEquals(0, array.length); + + array = null; + ArrayUtils.swap(array, 0, 2, 2); + assertNull(array); } //----------------------------------------------------------------------- @@ -2386,6 +2765,21 @@ public class ArrayUtilsTest { assertEquals(3, array[2], 0); assertEquals(4, array[3], 0); } + + @Test + public void testShiftRangeNullDouble() { + final double[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } + + @Test + public void testShiftNullDouble() { + final double[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } @Test public void testShiftAllDouble() { @@ -2453,6 +2847,21 @@ public class ArrayUtilsTest { assertEquals(3, array[2], 0); assertEquals(4, array[3], 0); } + + @Test + public void testShiftRangeNullFloat() { + final float[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } + + @Test + public void testShiftNullFloat() { + final float[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } @Test public void testShiftAllFloat() { @@ -2500,6 +2909,14 @@ public class ArrayUtilsTest { assertEquals(2, array[3]); assertEquals(3, array[4]); } + + @Test + public void testShiftNullShort() { + final short[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } @Test public void testShiftRangeShort() { @@ -2527,6 +2944,14 @@ public class ArrayUtilsTest { assertEquals(3, array[2]); assertEquals(4, array[3]); } + + @Test + public void testShiftRangeNullShort() { + final short[] array = null; + + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } @Test public void testShiftAllShort() { @@ -2594,6 +3019,13 @@ public class ArrayUtilsTest { assertEquals(3, array[2]); assertEquals(4, array[3]); } + + @Test + public void testShiftRangeNullByte() { + final byte[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } @Test public void testShiftAllByte() { @@ -2661,6 +3093,13 @@ public class ArrayUtilsTest { assertEquals(3, array[2]); assertEquals(4, array[3]); } + + @Test + public void testShiftRangeNullChar() { + final char[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } @Test public void testShiftAllChar() { @@ -2728,6 +3167,21 @@ public class ArrayUtilsTest { assertEquals(3, array[2]); assertEquals(4, array[3]); } + + @Test + public void testShiftRangeNullLong() { + final long[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } + + @Test + public void testShiftNullLong() { + final long[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } @Test public void testShiftAllLong() { @@ -2768,6 +3222,14 @@ public class ArrayUtilsTest { assertEquals(1, array[2]); assertEquals(2, array[3]); } + + @Test + public void testShiftNullInt() { + final int[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } @Test public void testShiftRangeInt() { @@ -2795,6 +3257,13 @@ public class ArrayUtilsTest { assertEquals(3, array[2]); assertEquals(4, array[3]); } + + @Test + public void testShiftRangeNullInt() { + final int[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } @Test public void testShiftAllInt() { @@ -2835,6 +3304,14 @@ public class ArrayUtilsTest { assertEquals("1", array[2]); assertEquals("2", array[3]); } + + @Test + public void testShiftNullObject() { + final String[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } @Test public void testShiftRangeObject() { @@ -2862,6 +3339,13 @@ public class ArrayUtilsTest { assertEquals("3", array[2]); assertEquals("4", array[3]); } + + @Test + public void testShiftRangeNullObject() { + final String[] array = null; + ArrayUtils.shift(array, 1, 1, 1); + assertNull(array); + } @Test public void testShiftAllObject() { @@ -2878,6 +3362,43 @@ public class ArrayUtilsTest { assertEquals("4", array[3]); } + @Test + public void testShiftBoolean() { + final boolean[] array = new boolean[] {true, true, false, false}; + + ArrayUtils.shift(array, 1); + assertFalse(array[0]); + assertTrue(array[1]); + assertTrue(array[2]); + assertFalse(array[3]); + + ArrayUtils.shift(array, -1); + assertTrue(array[0]); + assertTrue(array[1]); + assertFalse(array[2]); + assertFalse(array[3]); + + ArrayUtils.shift(array, 5); + assertFalse(array[0]); + assertTrue(array[1]); + assertTrue(array[2]); + assertFalse(array[3]); + + ArrayUtils.shift(array, -3); + assertFalse(array[0]); + assertFalse(array[1]); + assertTrue(array[2]); + assertTrue(array[3]); + } + + @Test + public void testShiftNullBoolean() { + final boolean[] array = null; + + ArrayUtils.shift(array, 1); + assertNull(array); + } + //----------------------------------------------------------------------- @Test public void testIndexOf() {
