### Question:
GeographicImageReader extends ImageReader { @Override public ImageTypeSpecifier getRawImageType(final int imageIndex) throws IOException { return getRawImageType(imageIndex, getDefaultReadParam(), null); } protected  GeographicImageReader(final ImageReaderSpi provider); @Override void setInput(final Object  input,
                         final boolean seekForwardOnly,
                         final boolean ignoreMetadata); int getNumImages(final boolean allowSearch); int getNumBands(final int imageIndex); int getDimension(final int imageIndex); IIOMetadata getStreamMetadata(); IIOMetadata getImageMetadata(int imageIndex); GeographicMetadata getGeographicMetadata(final int imageIndex); Iterator<ImageTypeSpecifier> getImageTypes(final int imageIndex); @Override ImageTypeSpecifier getRawImageType(final int imageIndex); @Override ImageReadParam getDefaultReadParam(); @Override BufferedImage read(final int imageIndex); void warningOccurred(final LogRecord record);  }### Answer:
@Test public void testTypeFloat() throws IOException { final float minimum = -2000; final float maximum = 4000; final float padValue = -9999; final SampleConverter[] converters = new SampleConverter[1]; final GeographicImageReader reader = new NullImageReader(DataBuffer.TYPE_FLOAT, minimum, maximum, padValue); final ImageTypeSpecifier specifier = reader.getRawImageType(0, null, converters); final SampleConverter converter = converters[0]; assertNotNull(converter); assertEquals (0.0, converter.getOffset(), 0.0); assertEquals (minimum, converter.convert(minimum), 0f); assertEquals (maximum, converter.convert(maximum), 0f); assertTrue (Float.isNaN(converter.convert(padValue))); final SampleModel sm = specifier.getSampleModel(); assertNotNull(sm); assertEquals(DataBuffer.TYPE_FLOAT, sm.getDataType()); final ColorModel cm = specifier.getColorModel(); assertFalse(cm instanceof IndexColorModel); }