X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=core%2Ftest%2Fnet%2Fsf%2Fopenrocket%2Futil%2FArrayUtilsTest.java;fp=core%2Ftest%2Fnet%2Fsf%2Fopenrocket%2Futil%2FArrayUtilsTest.java;h=ee8b5e960ce11a20828dd3786024d31cd6ed2d1b;hb=9349577cdfdff682b2aabd6daa24fdc3a7449b58;hp=0000000000000000000000000000000000000000;hpb=30ba0a882f0c061176ba14dbf86d3d6fad096c02;p=debian%2Fopenrocket diff --git a/core/test/net/sf/openrocket/util/ArrayUtilsTest.java b/core/test/net/sf/openrocket/util/ArrayUtilsTest.java new file mode 100644 index 00000000..ee8b5e96 --- /dev/null +++ b/core/test/net/sf/openrocket/util/ArrayUtilsTest.java @@ -0,0 +1,126 @@ +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 ); + } + +}