From: kruland2607 Date: Fri, 10 Aug 2012 20:03:21 +0000 (+0000) Subject: Change the implementation of ArrayUtils.range to include the stop value if it is... X-Git-Tag: upstream/12.09^2~56 X-Git-Url: https://git.gag.com/?p=debian%2Fopenrocket;a=commitdiff_plain;h=9e426c00e4a50f6524d7ea0908ab92cf230b7ea2 Change the implementation of ArrayUtils.range to include the stop value if it is a multiple of step. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@968 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/core/src/net/sf/openrocket/util/ArrayUtils.java b/core/src/net/sf/openrocket/util/ArrayUtils.java index 8e504a55..8f0db530 100644 --- a/core/src/net/sf/openrocket/util/ArrayUtils.java +++ b/core/src/net/sf/openrocket/util/ArrayUtils.java @@ -6,16 +6,11 @@ public class ArrayUtils { /** * Returns a double array with values from start to end with given step. - * Starts exactly at start and stops at the step before stop is reached. + * Starts exactly at start and stops at the multiple of step <= stop. */ public static double[] range(double start, double stop, double step){ - int size = 0 ; - if ( stop <= start ) { - size = 0; - } else { - size = (int) Math.ceil(((stop - start) / step)); - } + int size = (int) Math.floor(((stop - start) / step)) + 1; //System.out.println("Range from "+start+" to "+stop+" step "+step+" has length "+size); diff --git a/core/test/net/sf/openrocket/util/ArrayUtilsTest.java b/core/test/net/sf/openrocket/util/ArrayUtilsTest.java index 662ef5d6..ee8b5e96 100644 --- a/core/test/net/sf/openrocket/util/ArrayUtilsTest.java +++ b/core/test/net/sf/openrocket/util/ArrayUtilsTest.java @@ -80,6 +80,13 @@ public class ArrayUtilsTest { } + @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); @@ -90,9 +97,10 @@ public class ArrayUtilsTest { @Test public void testRange2() { double[] ary = ArrayUtils.range(0.0, 1.0, 0.5); - assertEquals(2, ary.length); + 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 @@ -107,9 +115,9 @@ public class ArrayUtilsTest { @Test public void testRange4() { double[] ary = ArrayUtils.range(0.0,10.0, 0.5); - assertEquals( 20, ary.length ); + assertEquals( 21, ary.length ); int i =0; - for( double d = 0.0; d < 10.0; d+=0.5){ + for( double d = 0.0; d < 10.2; d+=0.5){ assertEquals(d,ary[i++],0.0); } assertEquals( i, ary.length );