private static bool PolynomialEquality(Polynomial p1, LibPolynomial p2) { if (p1 == null || p2 == null || p1.Degree != p2.Degree) { return(false); } for (int i = 0; i < p1.Degree; i++) { if (p1[i] != p2[i]) { return(false); } } return(true); }
public void TestMultiplication() { double[] sameSizeArr = new double[] { 17, 1, -13, 1, 0 }; Polynomial sameSize = new Polynomial(sameSizeArr); LibPolynomial libSameSize = new LibPolynomial(sameSizeArr); Assert.True(PolynomialEquality(sameSize * polynom, libSameSize * libPolynom)); double[] biggerArr = new double[] { 1, 1, 1, 1, 1, 73 }; Polynomial bigger = new Polynomial(biggerArr); LibPolynomial libBigger = new LibPolynomial(biggerArr); Assert.True(PolynomialEquality(bigger * polynom, libBigger * libPolynom)); Assert.Throws(typeof(ArgumentException), () => { Polynomial test = polynom * null; }); }
public void TestMultOnNumber() { double positive = 73; double negative = -73; double zero = 0; double[] values = new double[] { 1, 2, 0, 4, 5 }; LibPolynomial onPositive = new LibPolynomial(values.Select(x => x * positive).ToArray()); LibPolynomial onNegative = new LibPolynomial(values.Select(x => x * negative).ToArray()); LibPolynomial onZero = new LibPolynomial(values.Select(x => x * zero).ToArray()); Assert.True(PolynomialEquality(polynom * positive, onPositive)); Assert.True(PolynomialEquality(polynom * negative, onNegative)); Assert.True(PolynomialEquality(polynom * zero, onZero)); Polynomial nullPolynomial = null; Assert.Throws(typeof(ArgumentException), () => { Polynomial test = nullPolynomial * 42.1; }); }
public void Setup() { double[] values = new double[] { 1, 2, 0, 4, 5 }; polynom = new Polynomial(values); // 5x^4 + 4x^3 + 0x^2 + 2x + 1 libPolynom = new LibPolynomial(values); }