@Test
public void testCheckReciprocal() throws TransformException, FactoryException {

    final double[] dst = new double[PROJECTED.length];
    MapProjection mt = createGoogleMercator();
    mt.transform(GEOGRAPHIC, 0, dst, 0, PROJECTED.length/2);
    for (int i=0; i<PROJECTED.length; i++) {
       assertEquals(PROJECTED[i], dst[i], 0.1);   // 10 cm precision
    }
    
    for (int i=0; i < PROJECTED.length/2; i++) {
    	Point2D src = new Point2D.Double(GEOGRAPHIC[i*2+0], GEOGRAPHIC[i*2+1]);
    	Point2D target = new Point2D.Double(PROJECTED[i*2+0], PROJECTED[i*2+1]);
    	assertEquals(true, mt.checkReciprocal(src, target, false));
    	assertEquals(true, mt.checkReciprocal(target, src, true));
    }
    mt.inverse().transform(PROJECTED, 0, dst, 0, PROJECTED.length/2);
    for (int i=0; i<GEOGRAPHIC.length; i++) {
        assertEquals(GEOGRAPHIC[i], dst[i], 0.0001); // About 10 m precision
    }
}