Exemplo n.º 1
0
def test_piecewise_fold_expand():
    p1 = Piecewise((1, Interval(0, 1, False, True).contains(x)), (0, True))

    p2 = piecewise_fold(expand((1 - x)*p1))
    assert p2 == Piecewise((1 - x, Interval(0, 1, False, True).contains(x)),
        (Piecewise((-x, Interval(0, 1, False, True).contains(x)), (0, True)), True))

    p2 = expand(piecewise_fold((1 - x)*p1))
    assert p2 == Piecewise(
        (1 - x, Interval(0, 1, False, True).contains(x)), (0, True))
Exemplo n.º 2
0
def test_piecewise_fold_expand():
    p1 = Piecewise((1, Interval(0, 1, False, True).contains(x)), (0, True))

    p2 = piecewise_fold(expand((1 - x)*p1))
    assert p2 == Piecewise((1 - x, Interval(0, 1, False, True).contains(x)),
                           (Piecewise((-x, Interval(0, 1, False, True).contains(x)), (0, True)), True))

    p2 = expand(piecewise_fold((1 - x)*p1))
    assert p2 == Piecewise(
        (1 - x, Interval(0, 1, False, True).contains(x)), (0, True))
Exemplo n.º 3
0
def test_piecewise_fold():

    p = Piecewise((x, x < 1), (1, 1 <= x))

    assert piecewise_fold(x * p) == Piecewise((x**2, x < 1), (x, 1 <= x))
    assert piecewise_fold(p + p) == Piecewise((2 * x, x < 1), (2, 1 <= x))
    assert piecewise_fold(Piecewise((1, x < 0), (2, True))
                          + Piecewise((10, x < 0), (-10, True))) == \
        Piecewise((11, x < 0), (-8, True))

    p1 = Piecewise((0, x < 0), (x, x <= 1), (0, True))
    p2 = Piecewise((0, x < 0), (1 - x, x <= 1), (0, True))

    p = 4 * p1 + 2 * p2
    assert integrate(piecewise_fold(p),
                     (x, -oo, oo)) == integrate(2 * x + 2, (x, 0, 1))
Exemplo n.º 4
0
def test_piecewise_fold():

    p = Piecewise((x, x < 1), (1, 1 <= x))

    assert piecewise_fold(x*p) == Piecewise((x**2, x < 1), (x, 1 <= x))
    assert piecewise_fold(p + p) == Piecewise((2*x, x < 1), (2, 1 <= x))
    assert piecewise_fold(Piecewise((1, x < 0), (2, True))
                          + Piecewise((10, x < 0), (-10, True))) == \
        Piecewise((11, x < 0), (-8, True))

    p1 = Piecewise((0, x < 0), (x, x <= 1), (0, True))
    p2 = Piecewise((0, x < 0), (1 - x, x <= 1), (0, True))

    p = 4*p1 + 2*p2
    assert integrate(
        piecewise_fold(p), (x, -oo, oo)) == integrate(2*x + 2, (x, 0, 1))
Exemplo n.º 5
0
def test_piecewise_fold_piecewise_in_cond():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (p1 / Abs(p1), True))
    p3 = piecewise_fold(p2)
    assert (p2.subs(x, -pi / 2) == 0.0)
    assert (p2.subs(x, 1) == 0.0)
    assert (p2.subs(x, -pi / 4) == 1.0)
    p4 = Piecewise((0, Eq(p1, 0)), (1, True))
    assert (piecewise_fold(p4) == Piecewise(
        (0, Or(And(Eq(cos(x), 0), x < 0), Not(x < 0))), (1, True)))

    r1 = 1 < Piecewise((1, x < 1), (3, True))
    assert (piecewise_fold(r1) == Not(x < 1))

    p5 = Piecewise((1, x < 0), (3, True))
    p6 = Piecewise((1, x < 1), (3, True))
    p7 = piecewise_fold(Piecewise((1, p5 < p6), (0, True)))
    assert (Piecewise((1, And(Not(x < 1), x < 0)), (0, True)))
Exemplo n.º 6
0
def test_piecewise_fold_piecewise_in_cond():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (p1 / Abs(p1), True))
    assert(p2.subs({x: -pi/2}) == 0.0)
    assert(p2.subs({x: 1}) == 0.0)
    assert(p2.subs({x: -pi/4}) == 1.0)
    p4 = Piecewise((0, Eq(p1, 0)), (1, True))
    assert(piecewise_fold(p4) == Piecewise(
        (0, Or(And(Eq(cos(x), 0), x < 0), Not(x < 0))), (1, True)))

    r1 = 1 < Piecewise((1, x < 1), (3, True))
    assert(piecewise_fold(r1) == Not(x < 1))

    p5 = Piecewise((1, x < 0), (3, True))
    p6 = Piecewise((1, x < 1), (3, True))
    p7 = piecewise_fold(Piecewise((1, p5 < p6), (0, True)))
    assert p7
    assert Piecewise((1, And(Not(x < 1), x < 0)), (0, True))
Exemplo n.º 7
0
def test_piecewise_fold_piecewise_in_cond():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (p1 / abs(p1), True))
    assert p2.subs({x: -pi / 2}) == 0.0
    assert p2.subs({x: 1}) == 0.0
    assert p2.subs({x: -pi / 4}) == 1.0
    p4 = Piecewise((0, Eq(p1, 0)), (1, True))
    assert (piecewise_fold(p4) == Piecewise(
        (0, Or(And(Eq(cos(x), 0), x < 0), Not(x < 0))), (1, True)))

    r1 = 1 < Piecewise((1, x < 1), (3, True))
    assert (piecewise_fold(r1) == Not(x < 1))

    p5 = Piecewise((1, x < 0), (3, True))
    p6 = Piecewise((1, x < 1), (3, True))
    p7 = piecewise_fold(Piecewise((1, p5 < p6), (0, True)))
    assert p7
    assert Piecewise((1, And(Not(x < 1), x < 0)), (0, True))
Exemplo n.º 8
0
def test_piecewise_complex():
    p1 = Piecewise((2, x < 0), (1, 0 <= x))
    p2 = Piecewise((2 * I, x < 0), (I, 0 <= x))
    p3 = Piecewise((I * x, x > 1), (1 + I, True))
    p4 = Piecewise((-I * conjugate(x), x > 1), (1 - I, True))

    assert conjugate(p1) == p1
    assert conjugate(p2) == piecewise_fold(-p2)
    assert conjugate(p3) == p4

    assert p1.is_imaginary is False
    assert p1.is_extended_real is True
    assert p2.is_imaginary is True
    assert p2.is_extended_real is False
    assert p3.is_imaginary is None
    assert p3.is_extended_real is None

    assert p1.as_real_imag() == (p1, 0)
    assert p2.as_real_imag() == (0, -I * p2)
Exemplo n.º 9
0
def test_piecewise_complex():
    p1 = Piecewise((2, x < 0), (1, 0 <= x))
    p2 = Piecewise((2*I, x < 0), (I, 0 <= x))
    p3 = Piecewise((I*x, x > 1), (1 + I, True))
    p4 = Piecewise((-I*conjugate(x), x > 1), (1 - I, True))

    assert conjugate(p1) == p1
    assert conjugate(p2) == piecewise_fold(-p2)
    assert conjugate(p3) == p4

    assert p1.is_imaginary is False
    assert p1.is_extended_real is True
    assert p2.is_imaginary is True
    assert p2.is_extended_real is False
    assert p3.is_imaginary is None
    assert p3.is_extended_real is None

    assert p1.as_real_imag() == (p1, 0)
    assert p2.as_real_imag() == (0, -I*p2)
Exemplo n.º 10
0
def test_deltasummation_mul_add_x_kd_add_y_kd():
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, 1, 3)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, And(Integer(1) <= i, i <= 3)), (0, True)) +
        3 * (Kd(i, k) + x) * y)
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, 1, 1)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, Eq(i, 1)), (0, True)) + (Kd(i, k) + x) * y)
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, 2, 2)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, Eq(i, 2)), (0, True)) + (Kd(i, k) + x) * y)
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, 3, 3)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, Eq(i, 3)), (0, True)) + (Kd(i, k) + x) * y)
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, 1, k)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, And(Integer(1) <= i, i <= k)), (0, True)) +
        k * (Kd(i, k) + x) * y)
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, k, 3)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, And(k <= i, i <= 3)), (0, True)) + (4 - k) *
        (Kd(i, k) + x) * y)
    assert ds((x + Kd(i, k)) * (y + Kd(i, j)), (j, k, l)) == piecewise_fold(
        Piecewise((Kd(i, k) + x, And(k <= i, i <= l)), (0, True)) +
        (l - k + 1) * (Kd(i, k) + x) * y)
Exemplo n.º 11
0
def test_deltasummation_mul_add_x_y_add_kd_kd():
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, 1, 3)) == piecewise_fold(
        Piecewise((x + y, And(Integer(1) <= i, i <= 3)), (0, True)) +
        Piecewise((x + y, And(Integer(1) <= j, j <= 3)), (0, True)))
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, 1, 1)) == piecewise_fold(
        Piecewise((x + y, Eq(i, 1)), (0, True)) +
        Piecewise((x + y, Eq(j, 1)), (0, True)))
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, 2, 2)) == piecewise_fold(
        Piecewise((x + y, Eq(i, 2)), (0, True)) +
        Piecewise((x + y, Eq(j, 2)), (0, True)))
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, 3, 3)) == piecewise_fold(
        Piecewise((x + y, Eq(i, 3)), (0, True)) +
        Piecewise((x + y, Eq(j, 3)), (0, True)))
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, 1, l)) == piecewise_fold(
        Piecewise((x + y, And(Integer(1) <= i, i <= l)), (0, True)) +
        Piecewise((x + y, And(Integer(1) <= j, j <= l)), (0, True)))
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, l, 3)) == piecewise_fold(
        Piecewise((x + y, And(l <= i, i <= 3)), (0, True)) +
        Piecewise((x + y, And(l <= j, j <= 3)), (0, True)))
    assert ds((x + y) * (Kd(i, k) + Kd(j, k)), (k, l, m)) == piecewise_fold(
        Piecewise((x + y, And(l <= i, i <= m)), (0, True)) +
        Piecewise((x + y, And(l <= j, j <= m)), (0, True)))
Exemplo n.º 12
0
 def inv(f):
     return piecewise_fold(meijerint_inversion(f, s, t))
Exemplo n.º 13
0
 def inv(f):
     return piecewise_fold(meijerint_inversion(f, s, t))
Exemplo n.º 14
0
def test_piecewise_fold_piecewise_in_cond_2():
    p1 = Piecewise((cos(x), x < 0), (0, True))
    p2 = Piecewise((0, Eq(p1, 0)), (1 / p1, True))
    p3 = Piecewise((0, Or(And(Eq(cos(x), 0), x < 0), Not(x < 0))),
                   (1 / cos(x), True))
    assert (piecewise_fold(p2) == p3)