private static void VerifyPow_Complex_Double(double realValue, double imaginaryValue, double power)
{
var value = new Complex(realValue, imaginaryValue);
Complex result = Complex.Pow(value, power);
double expectedReal = 0;
double expectedImaginary = 0;
if (power == 0)
{
expectedReal = 1;
}
else if (realValue != 0 || imaginaryValue != 0)
{
// Pow(x,y) = Exp(ylog(x))
Complex realComplex = new Complex(power, 0);
Complex expected = Complex.Exp(realComplex * Complex.Log(value));
expectedReal = expected.Real;
expectedImaginary = expected.Imaginary;
}
VerifyRealImaginaryProperties(result, expectedReal, expectedImaginary);
}