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)); }
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)); }
public void CheckComputesDiscriminant() { var polynomial = new List <int>() { 1, -9, 1, 2, -6, 1 }; var solution = PolynomialEquationAnalysisFunctions.ComputePolynomialEquationSolution(polynomial); Assert.AreEqual(-158315240, solution.Discriminant); }
public void CheckFindsTripleRoot() { var polynomial = new List <int>() { 1, 3, 3, 1 }; var solution = PolynomialEquationAnalysisFunctions.ComputePolynomialEquationSolution(polynomial); Assert.AreEqual(3, solution.Roots.First().Degree); }