package net.sf.openrocket.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import org.junit.Test; public class ArrayUtilsTest { @Test(expected=NullPointerException.class) public void testCopyOfRange_NullArg() { ArrayUtils.copyOfRange( (Byte[]) null, 0 , 14); } @Test(expected=ArrayIndexOutOfBoundsException.class) public void testCopyOfRange_StartTooBig() { Integer[] original = new Integer[5]; ArrayUtils.copyOfRange( original, 8 , 14); } @Test(expected=ArrayIndexOutOfBoundsException.class) public void testCopyOfRange_StartTooSmall() { Integer[] original = new Integer[5]; ArrayUtils.copyOfRange( original, -1 , 14); } @Test(expected=IllegalArgumentException.class) public void testCopyOfRange_IllegalRange() { Integer[] original = new Integer[5]; ArrayUtils.copyOfRange( original, 5, 0 ); } @Test public void testCopyOfRange() { Integer[] original = new Integer[5]; for ( int i =0; i < 5; i++ ) { original[i] = i; } Integer[] copy = ArrayUtils.copyOfRange( original, 0, 0 ); assertEquals( 0, copy.length ); copy = ArrayUtils.copyOfRange( original, 2, 2 ); assertEquals( 0, copy.length ); copy = ArrayUtils.copyOfRange( original, 0, 2 ); assertEquals( 2, copy.length ); for( int i =0; i< 2; i++ ) { assertEquals( original[i], copy[i] ); } copy = ArrayUtils.copyOfRange( original, 2, 5 ); assertEquals( 3, copy.length ); for( int i =0; i< 3; i++ ) { assertEquals( original[i+2], copy[i] ); } copy = ArrayUtils.copyOfRange( original, 2, 15 ); assertEquals( 13, copy.length ); for( int i =0; i< 3; i++ ) { assertEquals( original[i+2], copy[i] ); } for ( int i=3; i< 13; i++ ) { assertNull(copy[i]); } } @Test public void testCopyOfRange_ZeroSize() { Integer[] original = new Integer[0]; Integer[] copy = ArrayUtils.copyOfRange( original, 0, 0 ); assertEquals( 0, copy.length ); copy = ArrayUtils.copyOfRange( original, 0, 2 ); assertEquals( 2, copy.length ); for( int i =0; i< 2; i++ ) { assertEquals( null, copy[i] ); } } @Test public void testRante0() { double[] ary = ArrayUtils.range(0., 0., 1.0); assertEquals(1, ary.length); assertEquals( 0.0, ary[0], 0.0 ); } @Test public void testRange1() { double[] ary = ArrayUtils.range(0.0, 0.5, 1.0); assertEquals(1, ary.length); assertEquals( 0.0, ary[0], 0.0 ); } @Test public void testRange2() { double[] ary = ArrayUtils.range(0.0, 1.0, 0.5); assertEquals(3, ary.length); assertEquals( 0.0, ary[0], 0.0 ); assertEquals( 0.5, ary[1], 0.0 ); assertEquals( 1.0, ary[2], 0.0 ); } @Test public void testRange3() { double [] ary = ArrayUtils.range(0.0, 1.0, 0.4 ); assertEquals(3, ary.length); assertEquals( 0.0, ary[0], 0.0 ); assertEquals( 0.4, ary[1], 0.0 ); assertEquals( 0.8, ary[2], 0.0 ); } @Test public void testRange4() { double[] ary = ArrayUtils.range(0.0,10.0, 0.5); assertEquals( 21, ary.length ); int i =0; for( double d = 0.0; d < 10.2; d+=0.5){ assertEquals(d,ary[i++],0.0); } assertEquals( i, ary.length ); } }