Exemple #1
0
        protected override PolynomialEquationSolution CalculateSolution(List <int> coefficients, out bool invalidCoefficients)
        {
            if (coefficients[coefficients.Count - 1] == 0 || coefficients.Count(term => term != 0) < parameters.MinimumNumberOfTerms)
            {
                invalidCoefficients = true;
                return(new PolynomialEquationSolution(new List <Root>(), 0));
            }

            invalidCoefficients = true;
            return(PolynomialEquationAnalysisFunctions.ComputePolynomialEquationSolution(coefficients));
        }
Exemple #2
0
        public void CheckFindsIntegerRoot()
        {
            var polynomial = new List <int>()
            {
                1, 2, 2, 1
            };

            var solution = PolynomialEquationAnalysisFunctions.ComputePolynomialEquationSolution(polynomial);

            Assert.IsTrue(solution.Roots.Exists(root => root.IsInteger));
        }
Exemple #3
0
        public void CheckComputesDiscriminant()
        {
            var polynomial = new List <int>()
            {
                1, -9, 1, 2, -6, 1
            };

            var solution = PolynomialEquationAnalysisFunctions.ComputePolynomialEquationSolution(polynomial);

            Assert.AreEqual(-158315240, solution.Discriminant);
        }
Exemple #4
0
        public void CheckFindsTripleRoot()
        {
            var polynomial = new List <int>()
            {
                1, 3, 3, 1
            };

            var solution = PolynomialEquationAnalysisFunctions.ComputePolynomialEquationSolution(polynomial);

            Assert.AreEqual(3, solution.Roots.First().Degree);
        }