示例#1
0
        public void TestEvaluate_Double()
        {
            string expected = "15565";

            string polyString = "10000*x^4 + 125*y^3 + 500*x^2 + 75*y + 13";
            MultivariatePolynomial       poly           = MultivariatePolynomial.Parse(polyString);
            List <Tuple <char, double> > indeterminants = new List <Tuple <char, double> >()
            {
                new Tuple <char, double>('x', 1.1d),
                new Tuple <char, double>('y', 1.2d),
            };

            double result = poly.Evaluate(indeterminants);
            string actual = result.ToString();

            TestContext.WriteLine($"Result: \"{actual}\".");
            Assert.AreEqual(expected, actual, $"Test of: MultivariatePolynomial.Evaluate({polyString}) where {string.Join(" and ", indeterminants.Select(tup => $"{tup.Item1} = {tup.Item2}"))}");
        }
示例#2
0
        public void TestEvaluate_Complex()
        {
            string expected = "(0, 0)";

            string polyString = "x^2 + 1";
            MultivariatePolynomial        poly           = MultivariatePolynomial.Parse(polyString);
            List <Tuple <char, Complex> > indeterminants = new List <Tuple <char, Complex> >()
            {
                new Tuple <char, Complex>('x', Complex.ImaginaryOne)
            };

            Complex evaluated = poly.Evaluate(indeterminants);
            Complex result    = new Complex(Math.Round(evaluated.Real, 1), Math.Round(evaluated.Imaginary, 1));
            string  actual    = result.ToString();

            TestContext.WriteLine($"Result: \"{actual}\".");
            Assert.AreEqual(expected, actual, $"Test of: MultivariatePolynomial.Evaluate({polyString}) where x = sqrt(-1)");
        }
示例#3
0
        public void TestEvaluate_BigInteger()
        {
            string expected = "8551120982818029391";

            string polyString = "2*x^4 + 13*y^3 + 29*x^2 + 29*y + 13";
            MultivariatePolynomial           poly           = MultivariatePolynomial.Parse(polyString);
            List <Tuple <char, BigInteger> > indeterminants = new List <Tuple <char, BigInteger> >()
            {
                new Tuple <char, BigInteger>('x', 45468),
                new Tuple <char, BigInteger>('y', 63570),
            };

            BigInteger result = poly.Evaluate(indeterminants);
            string     actual = result.ToString();

            TestContext.WriteLine($"Result: \"{actual}\".");
            Assert.AreEqual(expected, actual, $"Test of: MultivariatePolynomial.Evaluate({polyString}) where {string.Join(" and ", indeterminants.Select(tup => $"{tup.Item1} = {tup.Item2}"))}");
        }