Arturo Bernal created LANG-1615:
-----------------------------------
Summary: ArrayUtils contains && indexOf fails to handle Float.NaN
Key: LANG-1615
URL: https://issues.apache.org/jira/browse/LANG-1615
Project: Commons Lang
Issue Type: Bug
Affects Versions: 3.11
Reporter: Arturo Bernal
The ArrayUtils.contains (float [], Float.NaN) and ArrayUtils.indexOf (float [],
Float.NaN) methods do not handle correctly when the array contains Float.NaN.
It should return that finds the element, but instead returns -1.
For example, consider the following:
{code:java}
@Test
public void testContainsFloatNaN() {
float[] a = new float[] { Float.NEGATIVE_INFINITY, Float.NaN,
Float.POSITIVE_INFINITY };
assertTrue(ArrayUtils.contains(a, Float.POSITIVE_INFINITY));
assertTrue(ArrayUtils.contains(a, Float.NEGATIVE_INFINITY));
assertTrue(ArrayUtils.contains(a, Float.NaN)); // Error
}{code}
And
{code:java}
@Test
public void testIndexOfFloatNaN() {
float[] array = new float[] { Float.NEGATIVE_INFINITY, Float.NaN,
Float.POSITIVE_INFINITY, Float.NaN };
assertEquals(0, ArrayUtils.indexOf(array, Float.NEGATIVE_INFINITY));
assertEquals(1, ArrayUtils.indexOf(array, Float.NaN)); // Error
assertEquals(2, ArrayUtils.indexOf(array, Float.POSITIVE_INFINITY));
}{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)