### Question:
ComplexMathUtils { public static ComplexNumber multiply(ComplexNumber z1, ComplexNumber z2) { ArgChecker.notNull(z1, "z1"); ArgChecker.notNull(z2, "z2"); double a = z1.getReal(); double b = z1.getImaginary(); double c = z2.getReal(); double d = z2.getImaginary(); return new ComplexNumber(a * c - b * d, a * d + b * c); } 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 testMultiplyMany() { ComplexNumber a = multiply(Z1, multiply(Z2, Z1)); ComplexNumber b = multiply(Z1, Z2, Z1); assertComplexEquals(a, b); double x = 3.142; ComplexNumber c = multiply(a, x); ComplexNumber d = multiply(x, Z1, Z1, Z2); assertComplexEquals(c, d); }