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