### Question:
ReferenceableAxisImpl extends AbstractIrregularAxis<Double> { @Override public int findIndexOf(Double position) { if (position == null || Double.isNaN(position)) return -1; if (isLongitude) { position = GISUtils.getNextEquivalentLongitude(getCoordinateExtent().getLow(), position); } return super.findIndexOf(position); } ReferenceableAxisImpl(String name, List<Double> axisValues, boolean isLongitude); @Override boolean wraps(); @Override int findIndexOf(Double position); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testFindIndexOf() { assertEquals(-1, latAxis.findIndexOf(15.0)); assertEquals(-1, latAxis.findIndexOf(135.0)); assertEquals(-1, longAxis.findIndexOf(45.0)); assertEquals(-1, longAxis.findIndexOf(85.0)); assertEquals(-1, longAxis.findIndexOf(null)); assertEquals(-1, latAxis.findIndexOf(Double.NaN)); int expectedIndex = 1; assertEquals(expectedIndex, latAxis.findIndexOf(20.4)); expectedIndex = 0; assertEquals(expectedIndex, latAxis.findIndexOf(20.2)); expectedIndex = 3; assertEquals(expectedIndex, latAxis.findIndexOf(23.5)); expectedIndex = 6; assertEquals(expectedIndex, longAxis.findIndexOf(75.0)); expectedIndex = 1; assertEquals(expectedIndex, longAxis.findIndexOf(51.3)); expectedIndex = 4; assertEquals(expectedIndex, longAxis.findIndexOf(58.0)); }