def test_as_sum_raises(): e = Integral((x + y)**2, (x, 0, 1)) pytest.raises(ValueError, lambda: e.as_sum(-1)) pytest.raises(ValueError, lambda: e.as_sum(0)) pytest.raises(ValueError, lambda: Integral(x).as_sum(3)) pytest.raises(NotImplementedError, lambda: e.as_sum(oo)) pytest.raises(NotImplementedError, lambda: e.as_sum(3, method='xxxx2'))
def test_as_sum_left(): e = Integral((x + y)**2, (x, 0, 1)) assert e.as_sum(1, method="left").expand() == y**2 assert e.as_sum(2, method="left").expand() == Rational(1, 8) + y / 2 + y**2 assert e.as_sum( 3, method="left").expand() == Rational(5, 27) + 2 * y / 3 + y**2 assert e.as_sum( 4, method="left").expand() == Rational(7, 32) + 3 * y / 4 + y**2
def test_as_sum_right(): e = Integral((x + y)**2, (x, 0, 1)) assert e.as_sum(1, method="right").expand() == 1 + 2 * y + y**2 assert e.as_sum( 2, method="right").expand() == Rational(5, 8) + 3 * y / 2 + y**2 assert e.as_sum( 3, method="right").expand() == Rational(14, 27) + 4 * y / 3 + y**2 assert e.as_sum( 4, method="right").expand() == Rational(15, 32) + 5 * y / 4 + y**2
def test_as_sum_midpoint2(): e = Integral((x + y)**2, (x, 0, 1)) assert e.as_sum(1, method="midpoint").expand() == Rational(1, 4) + y + y**2 assert e.as_sum(2, method="midpoint").expand() == Rational(5, 16) + y + y**2 assert e.as_sum(3, method="midpoint").expand() == Rational(35, 108) + y + y**2 assert e.as_sum(4, method="midpoint").expand() == Rational(21, 64) + y + y**2
def test_as_sum_midpoint1(): e = Integral(sqrt(x**3 + 1), (x, 2, 10)) assert e.as_sum(1, method="midpoint") == 8 * sqrt(217) assert e.as_sum(2, method="midpoint") == 4 * sqrt(65) + 12 * sqrt(57) assert e.as_sum(3, method="midpoint") == 8*sqrt(217)/3 + \ 8*sqrt(3081)/27 + 8*sqrt(52809)/27 assert e.as_sum(4, method="midpoint") == 2*sqrt(730) + \ 4*sqrt(7) + 4*sqrt(86) + 6*sqrt(14) assert abs(e.as_sum(4, method="midpoint").evalf() - e.evalf()) < 0.5 e = Integral(sqrt(x**3 + y**3), (x, 2, 10), (y, 0, 10)) pytest.raises(NotImplementedError, lambda: e.as_sum(4))
def test_as_sum_midpoint1(): e = Integral(sqrt(x**3 + 1), (x, 2, 10)) assert e.as_sum(1, method="midpoint") == 8*sqrt(217) assert e.as_sum(2, method="midpoint") == 4*sqrt(65) + 12*sqrt(57) assert e.as_sum(3, method="midpoint") == 8*sqrt(217)/3 + \ 8*sqrt(3081)/27 + 8*sqrt(52809)/27 assert e.as_sum(4, method="midpoint") == 2*sqrt(730) + \ 4*sqrt(7) + 4*sqrt(86) + 6*sqrt(14) assert abs(e.as_sum(4, method="midpoint").evalf() - e.evalf()) < 0.5 e = Integral(sqrt(x**3 + y**3), (x, 2, 10), (y, 0, 10)) pytest.raises(NotImplementedError, lambda: e.as_sum(4))
def test_as_sum_trapezoid(): e = Integral(sin(x), (x, 3, 7)) assert e.as_sum(2, 'trapezoid') == 2*sin(5) + sin(3) + sin(7)
def test_as_sum_right(): e = Integral((x + y)**2, (x, 0, 1)) assert e.as_sum(1, method="right").expand() == 1 + 2*y + y**2 assert e.as_sum(2, method="right").expand() == Rational(5, 8) + 3*y/2 + y**2 assert e.as_sum(3, method="right").expand() == Rational(14, 27) + 4*y/3 + y**2 assert e.as_sum(4, method="right").expand() == Rational(15, 32) + 5*y/4 + y**2
def test_as_sum_left(): e = Integral((x + y)**2, (x, 0, 1)) assert e.as_sum(1, method="left").expand() == y**2 assert e.as_sum(2, method="left").expand() == Rational(1, 8) + y/2 + y**2 assert e.as_sum(3, method="left").expand() == Rational(5, 27) + 2*y/3 + y**2 assert e.as_sum(4, method="left").expand() == Rational(7, 32) + 3*y/4 + y**2