### Question:
NewZealandMapGrid extends UnitaryProjection { @Override protected void inverseTransform(final double[] srcPts, final int srcOff, final double[] dstPts, final int dstOff) throws ProjectionException { final Complex z = new Complex(srcPts[srcOff+1], srcPts[srcOff]); final Complex power = new Complex(z); final Complex theta = new Complex(); theta.multiply(B[0], z); for (int j=1; j<B.length; j++) { power.multiply(power, z); theta.addMultiply(theta, B[j], power); } final Complex num = new Complex(); final Complex denom = new Complex(); final Complex t = new Complex(); for (int j=0; j<3; j++) { power.power(theta, 2); num.addMultiply(z, A[1], power); for (int k=2; k<A.length; k++) { power.multiply(power, theta); t.multiply(A[k], power); t.multiply(t, k); num.add(num, t); } power.real = 1; power.imag = 0; denom.copy(A[0]); for (int k=1; k<A.length; k++) { power.multiply(power, theta); t.multiply(A[k], power); t.multiply(t, k+1); denom.add(denom, t); } theta.divide(num, denom); } final double dpsi = theta.real; double dpsi_pow_i = dpsi; double dphi = TPHI[0] * dpsi; for (int i=1; i<TPHI.length; i++) { dpsi_pow_i *= dpsi; dphi += (TPHI[i] * dpsi_pow_i); } dstPts[dstOff ] = theta.imag; dstPts[dstOff+1] = dphi; } protected  NewZealandMapGrid(final OperationMethod method, final Parameters parameters); static MathTransform2D create(final OperationMethod descriptor,
                                         final ParameterValueGroup values); @Override Matrix transform(final double[] srcPts, final int srcOff,
                            final double[] dstPts, final int dstOff,
                            final boolean derivate);  }### Answer:
@Test public void testInverseTransform() throws TransformException { final double[] dst = new double[6]; transform.inverse().transform(PROJECTED, 0, dst, 0, 3); for (int i=0; i<GEOGRAPHIC.length; i++) { assertEquals(GEOGRAPHIC[i], dst[i], 0.0001); } }