示例#1
0
        public static void RunTests_RandomValidValues()
        {
            // Verify test results with ComplexInFirstQuad
            double real      = Support.GetSmallRandomDoubleValue(false);
            double imaginary = Support.GetSmallRandomDoubleValue(false);

            VerifySinh(real, imaginary);

            // Verify test results with ComplexInSecondQuad
            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(false);
            VerifySinh(real, imaginary);

            // Verify test results with ComplexInThirdQuad
            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            VerifySinh(real, imaginary);

            // Verify test results with ComplexInFourthQuad
            real      = Support.GetSmallRandomDoubleValue(false);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            VerifySinh(real, imaginary);
        }
        public static void RunTests_SByteImplicitCastToComplex()
        {
            VerifySByteImplicitCastToComplex(SByte.MinValue);
#if  CLS_Compliant
            for (int i = 0; i < Support.RandomSampleCount; ++i)
            {
                SByte randomValue = Support.GetRandomSByteValue(false);
                VerifySByteImplicitCastToComplex(randomValue);
            }
#endif
            VerifySByteImplicitCastToComplex(0);
            VerifySByteImplicitCastToComplex(1);

#if  CLS_Compliant
            for (int i = 0; i < Support.RandomSampleCount; ++i)
            {
                SByte randomValue = Support.GetRandomSByteValue(true);
                VerifySByteImplicitCastToComplex(randomValue);
            }
#endif

            VerifySByteImplicitCastToComplex(SByte.MaxValue);
        }
示例#3
0
        public static void RunTests_RandomValidValues()
        {
            // Verify test results with ComlexInFirstQuad
            Double real      = Support.GetSmallRandomDoubleValue(false);
            Double imaginary = Support.GetSmallRandomDoubleValue(false);

            VerifyBinaryAbs(real, imaginary, Math.Sqrt(real * real + imaginary * imaginary));

            // Verify test results with ComplexInSecondQuad
            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(false);
            VerifyBinaryAbs(real, imaginary, Math.Sqrt(real * real + imaginary * imaginary));

            // Verify test results with ComplexInThirdQuad
            real      = Support.GetSmallRandomDoubleValue(false);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            VerifyBinaryAbs(real, imaginary, Math.Sqrt(real * real + imaginary * imaginary));

            // Verify test results with ComplexInFourthQuad
            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            VerifyBinaryAbs(real, imaginary, Math.Sqrt(real * real + imaginary * imaginary));
        }
示例#4
0
        private static void RunTests_PowComplex(double a, double b)
        {
            VerifyPow(a, b, 0.0, -1.0);
            VerifyPow(a, b, 0.0, 0.0);
            VerifyPow(a, b, 0.0, 1.0);
            VerifyPow(a, b, 1.0, 0.0);

            double real      = Support.GetSmallRandomDoubleValue(false);
            double imaginary = Support.GetSmallRandomDoubleValue(false);

            VerifyPow(a, b, real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(false);
            VerifyPow(a, b, real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            VerifyPow(a, b, real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(false);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            VerifyPow(a, b, real, imaginary);
        }
示例#5
0
        private static void VerifyPow(double a, double b, double doubleVal)
        {
            Complex x          = new Complex(a, b);
            Complex powComplex = Complex.Pow(x, doubleVal);

            double expectedReal      = 0;
            double expectedImaginary = 0;

            if (0 == doubleVal)
            {
                expectedReal = 1;
            }
            else if (!(0 == a && 0 == b))
            {
                //pow(x, y) = exp(y·log(x))
                Complex y        = new Complex(doubleVal, 0);
                Complex expected = Complex.Exp(y * Complex.Log(x));
                expectedReal      = expected.Real;
                expectedImaginary = expected.Imaginary;
            }

            Support.VerifyRealImaginaryProperties(powComplex, expectedReal, expectedImaginary,
                                                  string.Format("Pow (({0}, {1}), {2})", a, b, doubleVal));
        }
        private static void VerifyBinaryMultiplyResult(double realFirst, double imgFirst, double realSecond, double imgSecond)
        {
            // calculate the expected results
            double realExpectedResult      = realFirst * realSecond - imgFirst * imgSecond;
            double imaginaryExpectedResult = realFirst * imgSecond + imgFirst * realSecond;

            // Create complex numbers
            Complex cFirst  = new Complex(realFirst, imgFirst);
            Complex cSecond = new Complex(realSecond, imgSecond);

            // arithmetic multiply (binary) operation
            Complex cResult = cFirst * cSecond;

            // verify the result
            Support.VerifyRealImaginaryProperties(cResult, realExpectedResult, imaginaryExpectedResult,
                                                  string.Format("Binary Multiply test = ({0}, {1}) * ({2}, {3})", realFirst, imgFirst, realSecond, imgSecond));

            // arithmetic multiply (static) operation
            cResult = Complex.Multiply(cFirst, cSecond);

            // verify the result
            Support.VerifyRealImaginaryProperties(cResult, realExpectedResult, imaginaryExpectedResult,
                                                  string.Format("Multiply (Static) test = ({0}, {1}) * ({2}, {3})", realFirst, imgFirst, realSecond, imgSecond));
        }
示例#7
0
        private static void VerifyLogWithBase(Complex complex)
        {
            double baseValue = 0.0;
            double baseLog;

            // Verify with Random Int32
            do
            {
                baseValue = Support.GetRandomInt32Value(false);
            }while (0 == baseValue);

            Complex logValue = Complex.Log(complex, baseValue);

            Complex logComplex = Complex.Log(complex);

            baseLog = Math.Log(baseValue);
            Complex expectedLog = logComplex / baseLog;

            Support.VerifyRealImaginaryProperties(logValue, expectedLog.Real, expectedLog.Imaginary,
                                                  string.Format("Log({0}, {1}):{2} != {3} as expected", complex, baseValue, logValue, expectedLog));

            // Verify with Random double value
            baseValue = 0.0;
            do
            {
                baseValue = Support.GetRandomDoubleValue(false);
            }while (0.0 == baseValue);

            logValue    = Complex.Log(complex, baseValue);
            logComplex  = Complex.Log(complex);
            baseLog     = Math.Log(baseValue);
            expectedLog = logComplex / baseLog;

            Support.VerifyRealImaginaryProperties(logValue, expectedLog.Real, expectedLog.Imaginary,
                                                  string.Format("Log({0}, {1}):{2} != {3} as expected", complex, baseValue, logValue, expectedLog));
        }
        private static void VerifyExpWithAddition(double real, double imaginary)
        {
            // verify with e(x+y) = e(x)*e(y) if xy == yx
            Complex realComplex = new Complex(real, 0.0);
            Complex imgComplex  = new Complex(0.0, imaginary);

            Complex ri = realComplex * imgComplex;
            Complex ir = imgComplex * realComplex;

            if (!ri.Equals(ir))
            {
                return;
            }

            Complex realExp     = Complex.Exp(realComplex);
            Complex imgExp      = Complex.Exp(imgComplex);
            Complex expectedExp = realExp * imgExp;

            Complex complex    = new Complex(real, imaginary);
            Complex complexExp = Complex.Exp(complex);

            Support.VerifyRealImaginaryProperties(complexExp, expectedExp.Real, expectedExp.Imaginary,
                                                  string.Format("Exp({0}):{1} != {2})", complex, complexExp, expectedExp));
        }
        // Verification is done with Abs and Conjugate methods
        private static void VerifyBinaryDivideResult(double realFirst, double imgFirst, double realSecond, double imgSecond)
        {
            // Create complex numbers
            Complex cFirst  = new Complex(realFirst, imgFirst);
            Complex cSecond = new Complex(realSecond, imgSecond);

            Complex cExpectedResult    = (cFirst * Complex.Conjugate(cSecond));
            double  cExpectedReal      = cExpectedResult.Real;
            double  cExpectedImaginary = cExpectedResult.Imaginary;

            if (!double.IsInfinity(cExpectedReal))
            {
                cExpectedReal = cExpectedReal / (cSecond.Magnitude * cSecond.Magnitude);
            }
            if (!double.IsInfinity(cExpectedImaginary))
            {
                cExpectedImaginary = cExpectedImaginary / (cSecond.Magnitude * cSecond.Magnitude);
            }

            // local variables
            Complex cResult;

            // arithmetic binary divide operation
            cResult = cFirst / cSecond;

            // verify the result
            Support.VerifyRealImaginaryProperties(cResult, cExpectedReal, cExpectedImaginary,
                                                  string.Format("Binary Divide test = ({0}, {1}) / ({2}, {3})", realFirst, imgFirst, realSecond, imgSecond));

            // arithmetic divide (static) operation
            cResult = Complex.Divide(cFirst, cSecond);

            // verify the result
            Support.VerifyRealImaginaryProperties(cResult, cExpectedReal, cExpectedImaginary,
                                                  string.Format("Divide (Static) test = ({0}, {1}) / ({2}, {3})", realFirst, imgFirst, realSecond, imgSecond));
        }
        public static void RunTests_RandomValidValues()
        {
            // Verify test results with ComplexInFirstQuad - ComplexInFirstQuad
            double realFirst  = Support.GetRandomDoubleValue(false);
            double imgFirst   = Support.GetRandomDoubleValue(false);
            double realSecond = Support.GetRandomDoubleValue(false);
            double imgSecond  = Support.GetRandomDoubleValue(false);

            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInFirstQuad - ComplexInSecondQuad
            realFirst  = Support.GetRandomDoubleValue(false);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(true);
            imgSecond  = Support.GetRandomDoubleValue(false);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInFirstQuad - ComplexInThirdQuad
            realFirst  = Support.GetRandomDoubleValue(false);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(true);
            imgSecond  = Support.GetRandomDoubleValue(true);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInFirstQuad - ComplexInFourthQuad
            realFirst  = Support.GetRandomDoubleValue(false);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(false);
            imgSecond  = Support.GetRandomDoubleValue(true);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInSecondQuad - ComplexInSecondQuad
            realFirst  = Support.GetRandomDoubleValue(true);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(true);
            imgSecond  = Support.GetRandomDoubleValue(false);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInSecondQuad - ComplexInThirdQuad
            realFirst  = Support.GetRandomDoubleValue(true);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(true);
            imgSecond  = Support.GetRandomDoubleValue(true);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInSecondQuad - ComplexInFourthQuad
            realFirst  = Support.GetRandomDoubleValue(true);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(false);
            imgSecond  = Support.GetRandomDoubleValue(true);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInThirdQuad - ComplexInThirdQuad
            realFirst  = Support.GetRandomDoubleValue(true);
            imgFirst   = Support.GetRandomDoubleValue(true);
            realSecond = Support.GetRandomDoubleValue(true);
            imgSecond  = Support.GetRandomDoubleValue(true);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInThirdQuad - ComplexInFourthQuad
            realFirst  = Support.GetRandomDoubleValue(true);
            imgFirst   = Support.GetRandomDoubleValue(true);
            realSecond = Support.GetRandomDoubleValue(false);
            imgSecond  = Support.GetRandomDoubleValue(true);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);

            // Verify test results with ComplexInFourthQuad - ComplexInFourthQuad
            realFirst  = Support.GetRandomDoubleValue(true);
            imgFirst   = Support.GetRandomDoubleValue(false);
            realSecond = Support.GetRandomDoubleValue(true);
            imgSecond  = Support.GetRandomDoubleValue(false);
            VerifyBinaryMinusResult(realFirst, imgFirst, realSecond, imgSecond);
        }
示例#11
0
        public static void RunTests_Zero()
        {
            // Verify it is zero.
            Assert.True(0 == Complex.Zero, string.Format("Zero does not equal to (0.0, 0.0)"));

            // Verify real and imaginary parts are 0.0
            Support.VerifyRealImaginaryProperties(Complex.Zero, 0.0, 0.0, "Verify real and imaginary parts are 0.0");

            // verify magnitude is 0.0 and phase is NaN.
            Support.VerifyMagnitudePhaseProperties(Complex.Zero, 0.0, double.NaN, "Verify magnitude is 0.0 and phase is NaN");

            // create a complex number with random real and imaginary parts
            double  realPart      = Support.GetRandomDoubleValue(false);
            double  imaginaryPart = Support.GetRandomDoubleValue(false);
            Complex complexRandom = new Complex(realPart, imaginaryPart);

            // verify x*0 = 0
            Complex multResult = complexRandom * Complex.Zero;

            Assert.True(0 == multResult, string.Format("Multiplication with Zero does not equal to 0: {0}", multResult));

            // verify x/0 = Infinity
            Complex divisorZeroResult = complexRandom / Complex.Zero;

            Support.VerifyRealImaginaryProperties(divisorZeroResult, double.NaN, double.NaN,
                                                  string.Format("Division with Zero does not equal to (NaN, NaN): {0}", divisorZeroResult));

            // verify 0/x = 0
            Complex divZeroResult = Complex.Zero / complexRandom;

            Assert.True(0 == divZeroResult, string.Format("Division of Zero does not equal to 0: {0}", divZeroResult));

            // verify x - 0 = 0
            Complex subZeroResult = complexRandom - Complex.Zero;

            Assert.True(complexRandom == subZeroResult, string.Format("Zero sub does not equal to complex {0} itself: {1}", complexRandom, subZeroResult));

            // verify 0 - x = -x
            Complex subComplexResult = Complex.Zero - complexRandom;

            Assert.True(subComplexResult == -complexRandom, string.Format("Sub from Zero does not equal to neg complex {0}: {1}", complexRandom, subComplexResult));

            // verify x + 0 = x
            Complex addZeroResult = complexRandom + Complex.Zero;

            Assert.True(addZeroResult == complexRandom, string.Format("Add Zero result does not equal to complex {0}: {1}", complexRandom, addZeroResult));

            // verify 0 + x = x
            Complex addComplexResult = Complex.Zero + complexRandom;

            Assert.True(addComplexResult == complexRandom, string.Format("Add to Zero result does not equal to complex {0}: {1}", complexRandom, addComplexResult));

            // verify Abs(0) = 0
            double absResult = Complex.Abs(Complex.Zero);

            Assert.True(0.0 == absResult, string.Format("Abs(Zero) does not equal to 0: {0}", absResult));

            // verify Conjugate(0) = 0
            Complex conjugateResult = Complex.Conjugate(Complex.Zero);

            Assert.True(0 == conjugateResult, string.Format("Conjugate(Zero) does not equal to 0: {0}", conjugateResult));

            // verify Reciprocal(0) goes to 0
            Complex reciprocalResult = Complex.Reciprocal(Complex.Zero);

            Assert.True(reciprocalResult == Complex.Zero, string.Format("Reciprocal(Zero) does not go to Infinity: {0}", reciprocalResult));
        }
        public static void RunTests_ZeroOneImaginaryOne()
        {
            double  real          = Support.GetRandomDoubleValue(false);
            double  imaginary     = Support.GetRandomDoubleValue(false);
            Complex randomComplex = new Complex(real, imaginary);

            real      = Support.GetRandomDoubleValue(true);
            imaginary = Support.GetRandomDoubleValue(true);
            Complex randomComplexNeg = new Complex(real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(false);
            imaginary = Support.GetSmallRandomDoubleValue(false);
            Complex randomSmallComplex = new Complex(real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            Complex randomSmallComplexNeg = new Complex(real, imaginary);

            VerifyComplexComparison(Complex.Zero, Complex.Zero, true);
            VerifyComplexComparison(Complex.Zero, Complex.One, false);
            VerifyComplexComparison(Complex.Zero, -Complex.One, false);
            VerifyComplexComparison(Complex.Zero, Complex.ImaginaryOne, false);
            VerifyComplexComparison(Complex.Zero, -Complex.ImaginaryOne, false);
            VerifyComplexComparison(Complex.Zero, -Complex.ImaginaryOne, false);

            bool expectedResult = (randomComplex.Real == 0.0 && randomComplex.Imaginary == 0.0);

            VerifyComplexComparison(Complex.Zero, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == 0.0 && randomComplexNeg.Imaginary == 0.0);
            VerifyComplexComparison(Complex.Zero, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == 0.0 && randomSmallComplex.Imaginary == 0.0);
            VerifyComplexComparison(Complex.Zero, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == 0.0 && randomSmallComplexNeg.Imaginary == 0.0);
            VerifyComplexComparison(Complex.Zero, randomSmallComplexNeg, expectedResult);

            VerifyComplexComparison(Complex.One, Complex.One, true);
            VerifyComplexComparison(Complex.One, -Complex.One, false);
            VerifyComplexComparison(Complex.One, Complex.ImaginaryOne, false);
            VerifyComplexComparison(Complex.One, -Complex.ImaginaryOne, false);

            expectedResult = (randomComplex.Real == 1.0 && randomComplex.Imaginary == 0.0);
            VerifyComplexComparison(Complex.One, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == 1.0 && randomComplexNeg.Imaginary == 0.0);
            VerifyComplexComparison(Complex.One, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == 1.0 && randomSmallComplex.Imaginary == 0.0);
            VerifyComplexComparison(Complex.One, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == 1.0 && randomSmallComplexNeg.Imaginary == 0.0);
            VerifyComplexComparison(Complex.One, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(-Complex.One, -Complex.One, true);
            VerifyComplexComparison(-Complex.One, Complex.ImaginaryOne, false);
            VerifyComplexComparison(-Complex.One, -Complex.ImaginaryOne, false);

            expectedResult = (randomComplex.Real == -1.0 && randomComplex.Imaginary == 0.0);
            VerifyComplexComparison(-Complex.One, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == -1.0 && randomComplexNeg.Imaginary == 0.0);
            VerifyComplexComparison(-Complex.One, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == -1.0 && randomSmallComplex.Imaginary == 0.0);
            VerifyComplexComparison(-Complex.One, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == -1.0 && randomSmallComplexNeg.Imaginary == 0.0);
            VerifyComplexComparison(-Complex.One, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(Complex.ImaginaryOne, Complex.ImaginaryOne, true);
            VerifyComplexComparison(Complex.ImaginaryOne, -Complex.ImaginaryOne, false);

            expectedResult = (randomComplex.Real == 0.0 && randomComplex.Imaginary == 1.0);
            VerifyComplexComparison(Complex.ImaginaryOne, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == 0.0 && randomComplexNeg.Imaginary == 1.0);
            VerifyComplexComparison(Complex.ImaginaryOne, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == 0.0 && randomSmallComplex.Imaginary == 1.0);
            VerifyComplexComparison(Complex.ImaginaryOne, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == 0.0 && randomSmallComplexNeg.Imaginary == 1.0);
            VerifyComplexComparison(Complex.ImaginaryOne, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(-Complex.ImaginaryOne, -Complex.ImaginaryOne, true);

            expectedResult = (randomComplex.Real == 0.0 && randomComplex.Imaginary == -1.0);
            VerifyComplexComparison(-Complex.ImaginaryOne, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == 0.0 && randomComplexNeg.Imaginary == -1.0);
            VerifyComplexComparison(-Complex.ImaginaryOne, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == 0.0 && randomSmallComplex.Imaginary == -1.0);
            VerifyComplexComparison(-Complex.ImaginaryOne, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == 0.0 && randomSmallComplexNeg.Imaginary == -1.0);
            VerifyComplexComparison(-Complex.ImaginaryOne, randomSmallComplexNeg, expectedResult);
        }
        public static void RunTests_MaxMinValues()
        {
            double  real          = Support.GetRandomDoubleValue(false);
            double  imaginary     = Support.GetRandomDoubleValue(false);
            Complex randomComplex = new Complex(real, imaginary);

            real      = Support.GetRandomDoubleValue(true);
            imaginary = Support.GetRandomDoubleValue(true);
            Complex randomComplexNeg = new Complex(real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(false);
            imaginary = Support.GetSmallRandomDoubleValue(false);
            Complex randomSmallComplex = new Complex(real, imaginary);

            real      = Support.GetSmallRandomDoubleValue(true);
            imaginary = Support.GetSmallRandomDoubleValue(true);
            Complex randomSmallComplexNeg = new Complex(real, imaginary);

            Complex maxComplex   = new Complex(double.MaxValue, double.MaxValue);
            Complex minComplex   = new Complex(double.MinValue, double.MinValue);
            Complex maxReal      = new Complex(double.MaxValue, 0.0);
            Complex minReal      = new Complex(double.MinValue, 0.0);
            Complex maxImaginary = new Complex(0.0, double.MaxValue);
            Complex minImaginary = new Complex(0.0, double.MinValue);

            VerifyComplexComparison(maxComplex, maxComplex, true);
            VerifyComplexComparison(maxComplex, minComplex, false);
            VerifyComplexComparison(maxComplex, maxReal, false);
            VerifyComplexComparison(maxComplex, minReal, false);
            VerifyComplexComparison(maxComplex, maxImaginary, false);
            VerifyComplexComparison(maxComplex, minImaginary, false);

            bool expectedResult = (randomComplex.Real == maxComplex.Real && randomComplex.Imaginary == maxComplex.Imaginary);

            VerifyComplexComparison(maxComplex, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == maxComplex.Real && randomComplexNeg.Imaginary == maxComplex.Imaginary);
            VerifyComplexComparison(maxComplex, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == maxComplex.Real && randomSmallComplex.Imaginary == maxComplex.Imaginary);
            VerifyComplexComparison(maxComplex, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == maxComplex.Real && randomSmallComplexNeg.Imaginary == maxComplex.Imaginary);
            VerifyComplexComparison(maxComplex, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(minComplex, minComplex, true);
            VerifyComplexComparison(minComplex, maxReal, false);
            VerifyComplexComparison(minComplex, maxImaginary, false);
            VerifyComplexComparison(minComplex, minImaginary, false);

            expectedResult = (randomComplex.Real == minComplex.Real && randomComplex.Imaginary == minComplex.Imaginary);
            VerifyComplexComparison(minComplex, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == minComplex.Real && randomComplexNeg.Imaginary == minComplex.Imaginary);
            VerifyComplexComparison(minComplex, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == minComplex.Real && randomSmallComplex.Imaginary == minComplex.Imaginary);
            VerifyComplexComparison(minComplex, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == minComplex.Real && randomSmallComplexNeg.Imaginary == minComplex.Imaginary);
            VerifyComplexComparison(minComplex, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(maxReal, maxReal, true);
            VerifyComplexComparison(maxReal, minReal, false);
            VerifyComplexComparison(maxReal, maxImaginary, false);
            VerifyComplexComparison(maxReal, minImaginary, false);

            expectedResult = (randomComplex.Real == maxReal.Real && randomComplex.Imaginary == maxReal.Imaginary);
            VerifyComplexComparison(maxReal, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == maxReal.Real && randomComplexNeg.Imaginary == maxReal.Imaginary);
            VerifyComplexComparison(maxReal, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == maxReal.Real && randomSmallComplex.Imaginary == maxReal.Imaginary);
            VerifyComplexComparison(maxReal, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == maxReal.Real && randomSmallComplexNeg.Imaginary == maxReal.Imaginary);
            VerifyComplexComparison(maxReal, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(minReal, minReal, true);
            VerifyComplexComparison(minReal, maxImaginary, false);
            VerifyComplexComparison(minReal, minImaginary, false);

            expectedResult = (randomComplex.Real == minReal.Real && randomComplex.Imaginary == minReal.Imaginary);
            VerifyComplexComparison(minReal, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == minReal.Real && randomComplexNeg.Imaginary == minReal.Imaginary);
            VerifyComplexComparison(minReal, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == minReal.Real && randomSmallComplex.Imaginary == minReal.Imaginary);
            VerifyComplexComparison(minReal, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == minReal.Real && randomSmallComplexNeg.Imaginary == minReal.Imaginary);
            VerifyComplexComparison(minReal, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(maxImaginary, maxImaginary, true);
            VerifyComplexComparison(maxImaginary, minImaginary, false);

            expectedResult = (randomComplex.Real == maxImaginary.Real && randomComplex.Imaginary == maxImaginary.Imaginary);
            VerifyComplexComparison(maxImaginary, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == maxImaginary.Real && randomComplexNeg.Imaginary == maxImaginary.Imaginary);
            VerifyComplexComparison(maxImaginary, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == maxImaginary.Real && randomSmallComplex.Imaginary == maxImaginary.Imaginary);
            VerifyComplexComparison(maxImaginary, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == maxImaginary.Real && randomSmallComplexNeg.Imaginary == maxImaginary.Imaginary);
            VerifyComplexComparison(maxImaginary, randomSmallComplexNeg, expectedResult);


            VerifyComplexComparison(minImaginary, minImaginary, true);

            expectedResult = (randomComplex.Real == minImaginary.Real && randomComplex.Imaginary == minImaginary.Imaginary);
            VerifyComplexComparison(minImaginary, randomComplex, expectedResult);

            expectedResult = (randomComplexNeg.Real == minImaginary.Real && randomComplexNeg.Imaginary == minImaginary.Imaginary);
            VerifyComplexComparison(minImaginary, randomComplexNeg, expectedResult);

            expectedResult = (randomSmallComplex.Real == minImaginary.Real && randomSmallComplex.Imaginary == minImaginary.Imaginary);
            VerifyComplexComparison(minImaginary, randomSmallComplex, expectedResult);

            expectedResult = (randomSmallComplexNeg.Real == minImaginary.Real && randomSmallComplexNeg.Imaginary == minImaginary.Imaginary);
            VerifyComplexComparison(minImaginary, randomSmallComplexNeg, expectedResult);
        }
示例#14
0
文件: ctor.cs 项目: yang73137/corefx
 private static void VerifyCtor(double real, double imaginary)
 {
     Complex c_new = new Complex(real, imaginary);
     Support.VerifyRealImaginaryProperties(c_new, real, imaginary, 
         string.Format("Error_ctor(Complex): ({0}, {1})", real, imaginary));
 }