GridCoverageReaderHelper helper = new GridCoverageReaderHelper(reader, new Rectangle(400,
200), mapExtent, Interpolation.getInstance(Interpolation.INTERP_NEAREST));
// read single coverage with no projection handling, we should get the full requested area
GridCoverage2D coverage = helper.readCoverage(null);
Envelope2D envelope = coverage.getEnvelope2D();
// System.out.println(envelope);
assertTrue(envelope.getMinX() < -100);
assertTrue(envelope.getMaxX() > 100);
// now read via the projection handlers
ProjectionHandler handler = ProjectionHandlerFinder.getHandler(mapExtent,
reader.getCoordinateReferenceSystem(), true);
List<GridCoverage2D> coverages = helper.readCoverages(null, handler);
// System.out.println(coverages);
assertEquals(1, coverages.size());
envelope = coverages.get(0).getEnvelope2D();
// west/east limited to 45 degrees from the central meridian, plus reading gutter
assertEquals(-36, envelope.getMinX(), EPS);
assertEquals(54, envelope.getMaxX(), EPS);
}