protected override bool CheckValidQuestion(List <int> coefficients, List <double> solution) { var a = coefficients[0]; var b = coefficients[1]; var c = coefficients[2]; var discriminant = QuadraticEquationAnalysisFunctions.ComputeDiscriminant(a, b, c); if ((a == 0) || ((b == 0) && (c == 0))) { return(false); } else if (parameters.RequireRealRoot && (discriminant < 0)) { return(false); } else if (parameters.RequireComplexRoot && (discriminant >= 0)) { return(false); } else if (parameters.RequireDoubleRoot && (discriminant != 0)) { return(false); } else if (parameters.RequireIntegerRoot && !(Math.Abs(solution[0] % 1) < 0.0001 && Math.Abs(solution[1] % 1) < 0.0001)) { return(false); } else { return(true); } }
protected override List <double> CalculateSolution(List <int> coefficients, out bool invalidCoefficients) { invalidCoefficients = false; int a = coefficients[0]; int b = coefficients[1]; int c = coefficients[2]; var roots = QuadraticEquationAnalysisFunctions.ComputeRoots(a, b, c); return(roots); }