System.Numerics.Tests.ComplexTests.VerifyMagnitudePhaseProperties C# (CSharp) Method

VerifyMagnitudePhaseProperties() private static method

private static VerifyMagnitudePhaseProperties ( Complex complex, double magnitude, double phase, [ lineNumber ) : void
complex Complex
magnitude double
phase double
lineNumber [
return void
        private static void VerifyMagnitudePhaseProperties(Complex complex, double magnitude, double phase, [CallerLineNumber] int lineNumber = 0)
        {
            // The magnitude (m) of a complex number (z = x + yi) is the absolute value - |z| = sqrt(x^2 + y^2)
            // Verification is done using the square of the magnitude since m^2 = x^2 + y^2
            double expectedMagnitudeSquared = magnitude * magnitude;
            double actualMagnitudeSquared = complex.Magnitude * complex.Magnitude;

            Assert.True(expectedMagnitudeSquared.Equals(actualMagnitudeSquared) || IsDiffTolerable(actualMagnitudeSquared, expectedMagnitudeSquared),
                string.Format("Failure at line {0}. Expected magnitude squared: {1}. Actual magnitude squared: {2}", lineNumber, expectedMagnitudeSquared, actualMagnitudeSquared));

            if (double.IsNaN(magnitude))
            {
                phase = double.NaN;
            }
            else if (magnitude == 0)
            {
                phase = 0;
            }
            else if (magnitude < 0)
            {
                phase += (phase < 0) ? Math.PI : -Math.PI;
            }

            Assert.True(phase.Equals(complex.Phase) || IsDiffTolerable(complex.Phase, phase),
                string.Format("Failure at line {0}. Expected phase: {1}. Actual phase: {2}", lineNumber, phase, complex.Phase));
        }
ComplexTests