示例#1
0
def test_manualintegrate_parts():
    assert manualintegrate(exp(x) * sin(x), x) == \
        (exp(x) * sin(x)) / 2 - (exp(x) * cos(x)) / 2
    assert manualintegrate(2*x*cos(x), x) == 2*x*sin(x) + 2*cos(x)
    assert manualintegrate(x * log(x), x) == x**2*log(x)/2 - x**2/4
    assert manualintegrate(log(x), x) == x * log(x) - x
    assert manualintegrate((3*x**2 + 5) * exp(x), x) == \
        3*x**2*exp(x) - 6*x*exp(x) + 11*exp(x)
    assert manualintegrate(atan(x), x) == x*atan(x) - log(x**2 + 1)/2

    # Make sure _parts_rule doesn't pick u = constant but can pick dv =
    # constant if necessary, e.g. for integrate(atan(x))
    assert _parts_rule(cos(x), x) == None
    assert _parts_rule(exp(x), x) == None
    assert _parts_rule(x**2, x) == None
    result = _parts_rule(atan(x), x)
    assert result[0] == atan(x) and result[1] == 1
示例#2
0
def test_manualintegrate_parts():
    assert manualintegrate(exp(x) * sin(x), x) == \
        (exp(x) * sin(x)) / 2 - (exp(x) * cos(x)) / 2
    assert manualintegrate(2 * x * cos(x), x) == 2 * x * sin(x) + 2 * cos(x)
    assert manualintegrate(x * log(x), x) == x**2 * log(x) / 2 - x**2 / 4
    assert manualintegrate(log(x), x) == x * log(x) - x
    assert manualintegrate((3*x**2 + 5) * exp(x), x) == \
        3*x**2*exp(x) - 6*x*exp(x) + 11*exp(x)
    assert manualintegrate(atan(x), x) == x * atan(x) - log(x**2 + 1) / 2

    # Make sure _parts_rule doesn't pick u = constant but can pick dv =
    # constant if necessary, e.g. for integrate(atan(x))
    assert _parts_rule(cos(x), x) == None
    assert _parts_rule(exp(x), x) == None
    assert _parts_rule(x**2, x) == None
    result = _parts_rule(atan(x), x)
    assert result[0] == atan(x) and result[1] == 1
示例#3
0
def test_manualintegrate_parts():
    assert (
        manualintegrate(exp(x) * sin(x), x)
        == (exp(x) * sin(x)) / 2 - (exp(x) * cos(x)) / 2
    )
    assert manualintegrate(2 * x * cos(x), x) == 2 * x * sin(x) + 2 * cos(x)
    assert manualintegrate(x * log(x), x) == x ** 2 * log(x) / 2 - x ** 2 / 4
    assert manualintegrate(log(x), x) == x * log(x) - x
    assert manualintegrate((3 * x ** 2 + 5) * exp(x), x) == 3 * x ** 2 * exp(
        x
    ) - 6 * x * exp(x) + 11 * exp(x)
    assert manualintegrate(atan(x), x) == x * atan(x) - log(x ** 2 + 1) / 2
    # Make sure _parts_rule does not go into an infinite loop here
    assert manualintegrate(log(1 / x) / (x + 1), x).has(Integral)

    # Make sure _parts_rule doesn't pick u = constant but can pick dv =
    # constant if necessary, e.g. for integrate(atan(x))
    assert _parts_rule(cos(x), x) == None
    assert _parts_rule(exp(x), x) == None
    assert _parts_rule(x ** 2, x) == None
    result = _parts_rule(atan(x), x)
    assert result[0] == atan(x) and result[1] == 1