public static ComplexNumber pow(ComplexNumber z, double x)
        {
            double mod  = ComplexMathUtils.mod(z);
            double arg  = ComplexMathUtils.arg(z);
            double mult = Math.Pow(mod, x);

            return(new ComplexNumber(mult * Math.Cos(x * arg), mult * Math.Sin(x * arg)));
        }
        public static ComplexNumber pow(ComplexNumber z1, ComplexNumber z2)
        {
            ArgChecker.notNull(z1, "z1");
            ArgChecker.notNull(z2, "z2");
            double mod   = ComplexMathUtils.mod(z1);
            double arg   = ComplexMathUtils.arg(z1);
            double mult  = Math.Pow(mod, z2.Real) * Math.Exp(-z2.Imaginary * arg);
            double theta = z2.Real * arg + z2.Imaginary * Math.Log(mod);

            return(new ComplexNumber(mult * Math.Cos(theta), mult * Math.Sin(theta)));
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testNull()
        public virtual void testNull()
        {
            try
            {
                ComplexMathUtils.add(null, Z1);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.add(Z1, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.add(X, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.add(null, X);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.arg(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.conjugate(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.divide(null, Z1);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.divide(Z1, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.divide(X, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.divide(null, X);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.exp(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.inverse(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.log(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.mod(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.multiply(null, Z1);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.multiply(Z1, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.multiply(X, (ComplexNumber)null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.multiply(null, X);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.pow(null, Z1);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.pow(Z1, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.pow(X, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.pow(null, X);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.sqrt(null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.subtract(null, Z1);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.subtract(Z1, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.subtract(X, null);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
            try
            {
                ComplexMathUtils.subtract(null, X);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final IllegalArgumentException e)
            catch (System.ArgumentException e)
            {
                assertStackTraceElement(e.StackTrace);
            }
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testArg()
        public virtual void testArg()
        {
            assertEquals(Math.Atan2(W, V), ComplexMathUtils.arg(Z1), EPS);
        }