from polynomial import Polynomial EPSILON = 0.001 def test_polynomial_representation(): c = Polynomial(5, 6, 0, -7) r = repr(c) s = str(c) print(r, s, c) def test_evaluate(): l = Polynomial(-12.5, 3.6) x = 0.0 (y, rest) = l.evaluate(x) assert abs(y + 12.5) < EPSILON def test_evaluate_2(): l = Polynomial(11, 7, -5, -4, 2) x = 2 q_expected = [-3, -5, 0, 2] y_expected = 5 (y, q) = l.evaluate(x) assert abs(y - y_expected) < EPSILON for (i, r) in enumerate( q_expected ): assert abs(r - q[i]) < EPSILON def test_polynomial_add(): p = Polynomial(-3, 4.5, 6) # ~$p(x) = -3 + 4.5x + 6x^2$~ q = Polynomial( 1, 0, 3, -4) # ~$q(x) = 1 + 3x^2 - 4x^3$~ s = p + q # ~$s(x) = -2 + 4.5x + 9x^2 - 4x^3$~ expected = [-2, 4.5, 9, -4] for (i, ec) in enumerate( expected ): pc = s[i] assert abs(pc - ec) < EPSILON def test_polynomial_add_2(): p = Polynomial(1, 0, 3, -4) # ~$q(x) = 1 + 3x^2 - 4x^3$~ q = Polynomial(-3, 4.5, 6) # ~$p(x) = -3 + 4.5x + 6x^2$~ s = p + q # ~$s(x) = -2 + 4.5x + 9x^2 - 4x^3$~ expected = [-2, 4.5, 9, -4] for (i, ec) in enumerate( expected ): pc = s[i] assert abs(pc - ec) < EPSILON if __name__ == "__main__": #test_evaluate_2() test_polynomial_add()