public void testHashCode() { for (float value : VALUES) { assertEquals(((Float) value).hashCode(), Floats.hashCode(value)); } }
public void testIsFinite() { for (float value : NUMBERS) { assertEquals(!(Float.isInfinite(value) || Float.isNaN(value)), Floats.isFinite(value)); } }
public void testCompare() { for (float x : VALUES) { for (float y : VALUES) { // note: spec requires only that the sign is the same assertEquals(x + ", " + y, Float.valueOf(x).compareTo(y), Floats.compare(x, y)); } } }
private static void testSortDescending(float[] input, float[] expectedOutput) { input = Arrays.copyOf(input, input.length); Floats.sortDescending(input); // GWT's Arrays.equals doesn't appear to handle NaN correctly, so test each element individually for (int i = 0; i < input.length; i++) { assertEquals(0, Float.compare(expectedOutput[i], input[i])); } }
private static void testSortDescending( float[] input, int fromIndex, int toIndex, float[] expectedOutput) { input = Arrays.copyOf(input, input.length); Floats.sortDescending(input, fromIndex, toIndex); // GWT's Arrays.equals doesn't appear to handle NaN correctly, so test each element individually for (int i = 0; i < input.length; i++) { assertEquals(0, Float.compare(expectedOutput[i], input[i])); } }
public void testIndexOf() { assertEquals(-1, Floats.indexOf(EMPTY, (float) 1)); assertEquals(-1, Floats.indexOf(ARRAY1, (float) 2)); assertEquals(-1, Floats.indexOf(ARRAY234, (float) 1)); assertEquals(0, Floats.indexOf(new float[] {(float) -1}, (float) -1)); assertEquals(0, Floats.indexOf(ARRAY234, (float) 2)); assertEquals(1, Floats.indexOf(ARRAY234, (float) 3)); assertEquals(2, Floats.indexOf(ARRAY234, (float) 4)); assertEquals( 1, Floats.indexOf(new float[] {(float) 2, (float) 3, (float) 2, (float) 3}, (float) 3)); for (float value : NUMBERS) { assertEquals("" + value, 1, Floats.indexOf(new float[] {5f, value}, value)); } assertEquals(-1, Floats.indexOf(new float[] {5f, NaN}, NaN)); }
@GwtIncompatible // Float.toString returns different value in GWT. public void testJoin() { assertEquals("", Floats.join(",", EMPTY)); assertEquals("1.0", Floats.join(",", ARRAY1)); assertEquals("1.0,2.0", Floats.join(",", (float) 1, (float) 2)); assertEquals("1.02.03.0", Floats.join("", (float) 1, (float) 2, (float) 3)); }
public void testLastIndexOf() { assertEquals(-1, Floats.lastIndexOf(EMPTY, (float) 1)); assertEquals(-1, Floats.lastIndexOf(ARRAY1, (float) 2)); assertEquals(-1, Floats.lastIndexOf(ARRAY234, (float) 1)); assertEquals(0, Floats.lastIndexOf(new float[] {(float) -1}, (float) -1)); assertEquals(0, Floats.lastIndexOf(ARRAY234, (float) 2)); assertEquals(1, Floats.lastIndexOf(ARRAY234, (float) 3)); assertEquals(2, Floats.lastIndexOf(ARRAY234, (float) 4)); assertEquals( 3, Floats.lastIndexOf(new float[] {(float) 2, (float) 3, (float) 2, (float) 3}, (float) 3)); for (float value : NUMBERS) { assertEquals("" + value, 0, Floats.lastIndexOf(new float[] {value, 5f}, value)); } assertEquals(-1, Floats.lastIndexOf(new float[] {NaN, 5f}, NaN)); }
@GwtIncompatible // Float.toString returns different value in GWT. public void testStringConverter_convert() { Converter<String, Float> converter = Floats.stringConverter(); assertEquals((Float) 1.0f, converter.convert("1.0")); assertEquals((Float) 0.0f, converter.convert("0.0")); assertEquals((Float) (-1.0f), converter.convert("-1.0")); assertEquals((Float) 1.0f, converter.convert("1")); assertEquals((Float) 0.0f, converter.convert("0")); assertEquals((Float) (-1.0f), converter.convert("-1")); assertEquals((Float) 1e6f, converter.convert("1e6")); assertEquals((Float) 1e-6f, converter.convert("1e-6")); }
public void testMax() { assertEquals(GREATEST, Floats.max(GREATEST)); assertEquals(LEAST, Floats.max(LEAST)); assertEquals( (float) 9, Floats.max((float) 8, (float) 6, (float) 7, (float) 5, (float) 3, (float) 0, (float) 9)); assertEquals(0f, Floats.max(-0f, 0f)); assertEquals(0f, Floats.max(0f, -0f)); assertEquals(GREATEST, Floats.max(NUMBERS)); assertTrue(Float.isNaN(Floats.max(VALUES))); }
public void testMin() { assertEquals(LEAST, Floats.min(LEAST)); assertEquals(GREATEST, Floats.min(GREATEST)); assertEquals( (float) 0, Floats.min((float) 8, (float) 6, (float) 7, (float) 5, (float) 3, (float) 0, (float) 9)); assertEquals(-0f, Floats.min(-0f, 0f)); assertEquals(-0f, Floats.min(0f, -0f)); assertEquals(LEAST, Floats.min(NUMBERS)); assertTrue(Float.isNaN(Floats.min(VALUES))); }
public void testConstrainToRange() { float tolerance = 1e-10f; assertEquals((float) 1, Floats.constrainToRange((float) 1, (float) 0, (float) 5), tolerance); assertEquals((float) 1, Floats.constrainToRange((float) 1, (float) 1, (float) 5), tolerance); assertEquals((float) 3, Floats.constrainToRange((float) 1, (float) 3, (float) 5), tolerance); assertEquals((float) -1, Floats.constrainToRange((float) 0, (float) -5, (float) -1), tolerance); assertEquals((float) 2, Floats.constrainToRange((float) 5, (float) 2, (float) 2), tolerance); try { Floats.constrainToRange((float) 1, (float) 3, (float) 2); fail(); } catch (IllegalArgumentException expected) { } }
public void testToArray_threadSafe() { for (int delta : new int[] {+1, 0, -1}) { for (int i = 0; i < VALUES.length; i++) { List<Float> list = Floats.asList(VALUES).subList(0, i); Collection<Float> misleadingSize = Helpers.misleadingSizeCollection(delta); misleadingSize.addAll(list); float[] arr = Floats.toArray(misleadingSize); assertEquals(i, arr.length); for (int j = 0; j < i; j++) { assertEquals(VALUES[j], arr[j]); } } } }
@GwtIncompatible // Floats.tryParse private static void checkTryParse(float expected, String input) { assertEquals(Float.valueOf(expected), Floats.tryParse(input)); }
public void testAsList_toArray_roundTrip() { float[] array = {(float) 0, (float) 1, (float) 2}; List<Float> list = Floats.asList(array); float[] newArray = Floats.toArray(list); // Make sure it returned a copy list.set(0, (float) 4); assertTrue(Arrays.equals(new float[] {(float) 0, (float) 1, (float) 2}, newArray)); newArray[1] = (float) 5; assertEquals((float) 1, (float) list.get(1)); }
public void testIndexOf_arrayTarget() { assertEquals(0, Floats.indexOf(EMPTY, EMPTY)); assertEquals(0, Floats.indexOf(ARRAY234, EMPTY)); assertEquals(-1, Floats.indexOf(EMPTY, ARRAY234)); assertEquals(-1, Floats.indexOf(ARRAY234, ARRAY1)); assertEquals(-1, Floats.indexOf(ARRAY1, ARRAY234)); assertEquals(0, Floats.indexOf(ARRAY1, ARRAY1)); assertEquals(0, Floats.indexOf(ARRAY234, ARRAY234)); assertEquals(0, Floats.indexOf(ARRAY234, new float[] {(float) 2, (float) 3})); assertEquals(1, Floats.indexOf(ARRAY234, new float[] {(float) 3, (float) 4})); assertEquals(1, Floats.indexOf(ARRAY234, new float[] {(float) 3})); assertEquals(2, Floats.indexOf(ARRAY234, new float[] {(float) 4})); assertEquals( 1, Floats.indexOf( new float[] {(float) 2, (float) 3, (float) 3, (float) 3, (float) 3}, new float[] {(float) 3})); assertEquals( 2, Floats.indexOf( }, new float[] {(float) 2, (float) 3, (float) 4})); assertEquals( 1, Floats.indexOf( }, new float[] {(float) 2, (float) 3, (float) 4})); assertEquals(
@GwtIncompatible // Float.toString returns different value in GWT. public void testStringConverter_reverse() { Converter<String, Float> converter = Floats.stringConverter(); assertEquals("1.0", converter.reverse().convert(1.0f)); assertEquals("0.0", converter.reverse().convert(0.0f)); assertEquals("-1.0", converter.reverse().convert(-1.0f)); assertEquals("1000000.0", converter.reverse().convert(1e6f)); assertEquals("1.0E-6", converter.reverse().convert(1e-6f)); }
@GwtIncompatible // Floats.tryParse private static void checkTryParse(String input) { assertEquals(referenceTryParse(input), Floats.tryParse(input)); }
@GwtIncompatible // Floats.tryParse public void testTryParseFailures() { for (String badInput : BAD_TRY_PARSE_INPUTS) { assertEquals(referenceTryParse(badInput), Floats.tryParse(badInput)); assertNull(Floats.tryParse(badInput)); } }
private static void testSortDescending( float[] input, int fromIndex, int toIndex, float[] expectedOutput) { input = Arrays.copyOf(input, input.length); Floats.sortDescending(input, fromIndex, toIndex); // GWT's Arrays.equals doesn't appear to handle NaN correctly, so test each element individually for (int i = 0; i < input.length; i++) { assertEquals(0, Float.compare(expectedOutput[i], input[i])); } }