public static void ACos_Basic(double real, double imaginary)
{
// Formula used in the feature: arccos(z) = -iln(z + iSqrt(value*value-1))
// Verification is done with z = ACos(Cos(z));
var complex = new Complex(real, imaginary);
Complex cosComplex = Complex.Cos(complex);
Complex acosComplex = Complex.Acos(cosComplex);
if (!real.Equals(acosComplex.Real) || !imaginary.Equals(acosComplex.Imaginary))
{
double realDiff = Math.Abs(Math.Abs(real) - Math.Abs(acosComplex.Real));
double imaginaryDiff = Math.Abs(Math.Abs(imaginary) - Math.Abs(acosComplex.Imaginary));
Assert.False((realDiff > 0.1) || (imaginaryDiff > 0.1), string.Format("({0}) != ACos(Cos():{1}):{2}", complex, cosComplex, acosComplex));
}
}