### Question:
ComplexMathUtils { public static ComplexNumber inverse(ComplexNumber z) { ArgChecker.notNull(z, "z"); double c = z.getReal(); double d = z.getImaginary(); if (Math.abs(c) > Math.abs(d)) { double dOverC = d / c; double denom = c + d * dOverC; return new ComplexNumber(1 / denom, -dOverC / denom); } double cOverD = c / d; double denom = c * cOverD + d; return new ComplexNumber(cOverD / denom, -1 / denom); } private  ComplexMathUtils(); static ComplexNumber add(ComplexNumber z1, ComplexNumber z2); static ComplexNumber add(ComplexNumber... z); static ComplexNumber add(ComplexNumber z, double x); static ComplexNumber add(double x, ComplexNumber z); static double arg(ComplexNumber z); static ComplexNumber conjugate(ComplexNumber z); static ComplexNumber divide(ComplexNumber z1, ComplexNumber z2); static ComplexNumber divide(ComplexNumber z, double x); static ComplexNumber divide(double x, ComplexNumber z); static ComplexNumber exp(ComplexNumber z); static ComplexNumber inverse(ComplexNumber z); static ComplexNumber log(ComplexNumber z); static double mod(ComplexNumber z); static ComplexNumber square(ComplexNumber z); static ComplexNumber multiply(ComplexNumber z1, ComplexNumber z2); static ComplexNumber multiply(ComplexNumber... z); static ComplexNumber multiply(double x, ComplexNumber... z); static ComplexNumber multiply(ComplexNumber z, double x); static ComplexNumber multiply(double x, ComplexNumber z); static ComplexNumber pow(ComplexNumber z1, ComplexNumber z2); static ComplexNumber pow(ComplexNumber z, double x); static ComplexNumber pow(double x, ComplexNumber z); static ComplexNumber sqrt(ComplexNumber z); static ComplexNumber subtract(ComplexNumber z1, ComplexNumber z2); static ComplexNumber subtract(ComplexNumber z, double x); static ComplexNumber subtract(double x, ComplexNumber z);  }### Answer:
@Test public void testInverse() { assertComplexEquals(ComplexMathUtils.inverse(ComplexMathUtils.inverse(Z1)), Z1); }