public void Test9DegreeComplexPolynomial()
        {
            var roots = ComplexPolynomialRootFinder_JenkinsTraub.FindRoots(complexCoefficients1);

            Assert.AreEqual(9, roots.Count);

            roots.Sort((x, y) => Comparer <double> .Default.Compare(x.Re, y.Re));

            for (int i = 0; i < roots.Count; ++i)
            {
                Assert.AreEqual(i - 4, roots[i].Im, 1E-12);
                Assert.AreEqual(i - 4, roots[i].Re, 1E-12);
            }
        }
        public void Test10DegreeComplexPolynomial()
        {
            var ccoeffs = new Complex[realCoefficients1.Length];

            for (int i = 0; i < realCoefficients1.Length; ++i)
            {
                ccoeffs[i] = realCoefficients1[i];
            }

            var roots = ComplexPolynomialRootFinder_JenkinsTraub.FindRoots(ccoeffs);

            Assert.AreEqual(10, roots.Count);
            for (int i = 0; i < roots.Count; ++i)
            {
                Assert.AreEqual(0, roots[i].Im, 1E-11);
            }

            roots.Sort((x, y) => Comparer <double> .Default.Compare(x.Re, y.Re));

            for (int i = 0; i < roots.Count; ++i)
            {
                Assert.AreEqual(i, roots[i].Re, 1E-7);
            }
        }