public void testReRead() throws IOException { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream(), false); // Explicitly allow repositioning, even though it's the default BufferedImage first = reader.read(0); assertNotNull(first); BufferedImage second = reader.read(0); assertNotNull(second); // TODO: These images should be exactly the same, but there's no equals for images assertEquals(first.getType(), second.getType()); assertEquals(first.getWidth(), second.getWidth()); assertEquals(first.getHeight(), second.getHeight()); }
public void testProviderCanReadNull() { boolean canRead = false; try { canRead = createProvider().canDecodeInput(null); } catch (IllegalArgumentException ignore) { } catch (RuntimeException e) { fail("RuntimeException other than IllegalArgumentException thrown: " + e); } catch (IOException e) { fail("Could not test data for read: " + e); } assertFalse("ImageReader can read null input", canRead); }
public void testReadIndexOutOfBounds() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); BufferedImage image = null; try { image = reader.read(Integer.MAX_VALUE); // TODO: This might actually not throw exception... fail("Read image with index out of bounds"); } catch (IndexOutOfBoundsException ignore) { } catch (IOException e) { fail("Image could not be read: " + e); } assertNull(image); }
public void testProviderInstalledForNames() { Class<? extends ImageReader> readerClass = getReaderClass(); for (String name : getFormatNames()) { assertProviderInstalledForName(name, readerClass); } }
public void testProviderInstalledForMIMETypes() { Class<? extends ImageReader> readerClass = getReaderClass(); for (String type : getMIMETypes()) { assertProviderInstalledForMIMEType(type, readerClass); } }
public void testProviderInstalledForSuffixes() { Class<? extends ImageReader> readerClass = getReaderClass(); for (String suffix : getSuffixes()) { assertProviderInstalledForSuffix(suffix, readerClass); } }
public void testGetHeightNoInput() { ImageReader reader = createReader(); int height = 0; try { height = reader.getHeight(0); fail("height read without imput"); } catch (IllegalStateException ignore) { } catch (IOException e) { fail("Could not read image height: " + e); } assertEquals("Wrong height reported", 0, height); }
public void testSetDestinationIllegal() throws IOException { final ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); List<ImageTypeSpecifier> illegalTypes = createIllegalTypes(reader.getImageTypes(0)); assertSame(destination, result); assertTrue( "Wrong message: " + message + " for type " + destination.getType(), message.contains("destination") || assertTrue("Wrong message: " + message, message.contains("dest"));
public void testSetDestinationOffsetNull() throws IOException { final ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); try { param.setDestinationOffset(null); fail("Null offset not allowed"); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().toLowerCase().contains("offset")); } }
public void testReadNoInput() { ImageReader reader = createReader(); // Do not set input BufferedImage image = null; try { image = reader.read(0); fail("Read image with no input"); } catch (IllegalStateException ignore) { } catch (IOException e) { fail("Image could not be read: " + e); } assertNull(image); }
public void testProviderCanRead() throws IOException { List<TestData> testData = getTestData(); ImageReaderSpi provider = createProvider(); for (TestData data : testData) { ImageInputStream stream = data.getInputStream(); assertNotNull(stream); assertTrue("Provider is expected to be able to decode data: " + data, provider.canDecodeInput(stream)); } }
public void testGetTypeSpecifiers() throws IOException { final ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageTypeSpecifier rawType = reader.getRawImageType(0); assertNotNull(rawType); Iterator<ImageTypeSpecifier> types = reader.getImageTypes(0); assertNotNull(types); assertTrue(types.hasNext()); // TODO: This might fail even though the specifiers are obviously equal, if the // color spaces they use are not the SAME instance, as ColorSpace uses identity equals // and Interleaved ImageTypeSpecifiers are only equal if color spaces are equal... boolean rawFound = false; while (types.hasNext()) { ImageTypeSpecifier type = types.next(); if (type.equals(rawType)) { rawFound = true; break; } } assertTrue("ImageTypeSepcifier from getRawImageType should be in the iterator from getImageTypes", rawFound); }
public void testProviderAndMetadataFormatNamesMatch() throws IOException { ImageReaderSpi provider = createProvider(); ImageReader reader = createReader(); reader.setInput(getTestData().get(0).getInputStream()); IIOMetadata imageMetadata = reader.getImageMetadata(0); if (imageMetadata != null) { assertEquals(provider.getNativeImageMetadataFormatName(), imageMetadata.getNativeMetadataFormatName()); } IIOMetadata streamMetadata = reader.getStreamMetadata(); if (streamMetadata != null) { assertEquals(provider.getNativeStreamMetadataFormatName(), streamMetadata.getNativeMetadataFormatName()); } }
public void testSetDestinationType() throws IOException { final ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); Iterator<ImageTypeSpecifier> types = reader.getImageTypes(0); while (types.hasNext()) { ImageTypeSpecifier type = types.next(); param.setDestinationType(type); BufferedImage result = reader.read(0, param); assertEquals(type.getColorModel(), result.getColorModel()); // The following logically tests // assertEquals(type.getSampleModel(), result.getSampleModel()); // but SampleModel does not have a proper equals method. SampleModel expectedModel = type.getSampleModel(); SampleModel resultModel = result.getSampleModel(); assertEquals(expectedModel.getDataType(), resultModel.getDataType()); assertEquals(expectedModel.getNumBands(), resultModel.getNumBands()); assertEquals(expectedModel.getNumDataElements(), resultModel.getNumDataElements()); assertTrue(Arrays.equals(expectedModel.getSampleSize(), resultModel.getSampleSize())); assertEquals(expectedModel.getTransferType(), resultModel.getTransferType()); for (int i = 0; i < expectedModel.getNumBands(); i++) { assertEquals(expectedModel.getSampleSize(i), resultModel.getSampleSize(i)); } } }
public void testSetDestination() throws IOException { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); Iterator<ImageTypeSpecifier> types = reader.getImageTypes(0); while (types.hasNext()) { ImageTypeSpecifier type = types.next(); BufferedImage destination = type.createBufferedImage(50, 50); param.setDestination(destination); BufferedImage result = reader.read(0, param); assertSame(destination, result); } }
public void testSetInput() { // Should just pass with no exceptions ImageReader reader = createReader(); assertNotNull(reader); for (TestData data : getTestData()) { reader.setInput(data.getInputStream()); } }
public void testGetMinIndex() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); int num = 0; try { num = reader.getMinIndex(); } catch (IllegalStateException ignore) { } assertEquals(0, num); }
public void testSetInputNull() { // Should just pass with no exceptions ImageReader reader = createReader(); assertNotNull(reader); reader.setInput(null); }
public void testGetMinIndexNoInput() { ImageReader reader = createReader(); int num = 0; try { num = reader.getMinIndex(); } catch (IllegalStateException ignore) { } assertEquals(0, num); }
/** * Convenience method to get a list of test files from the classpath. * Currently only works for resources on the filesystem (not in jars or * archives). * * @param pResourceInFolder a resource in the correct classpath folder. * @return a list of files */ protected final List<File> getInputsFromClasspath(final String pResourceInFolder) { URL resource = getClass().getClassLoader().getResource(pResourceInFolder); assertNotNull(resource); File dir; try { dir = new File(resource.toURI()).getParentFile(); } catch (URISyntaxException e) { throw new RuntimeException(e); } List<File> files = Arrays.asList(dir.listFiles()); assertFalse(files.isEmpty()); return files; }