Exemple #1
0
def test_ComplexPlane_measure():
    a, b = Interval(2, 5), Interval(4, 8)
    theta1, theta2 = Interval(0, 2*S.Pi), Interval(0, S.Pi)
    c1 = ComplexPlane(a*b)
    c2 = ComplexPlane(Union(a*theta1, b*theta2), polar=True)

    assert c1.measure == 12
    assert c2.measure == 9*pi
Exemple #2
0
def test_ComplexPlane_FiniteSet():
    x, y, z, a, b, c = symbols('x y z a b c')

    # Issue #9669
    assert ComplexPlane(FiniteSet(a, b, c)*FiniteSet(x, y, z)) == \
        FiniteSet(a + I*x, a + I*y, a + I*z, b + I*x, b + I*y,
                  b + I*z, c + I*x, c + I*y, c + I*z)
    assert ComplexPlane(FiniteSet(2) * FiniteSet(3)) == FiniteSet(2 + 3 * I)
Exemple #3
0
def test_Complex():
    assert 5 in S.Complexes
    assert 5 + 4 * I in S.Complexes
    assert S.Pi in S.Complexes
    assert -sqrt(2) in S.Complexes
    assert -I in S.Complexes
    assert sqrt(-1) in S.Complexes
    assert S.Complexes.intersect(S.Reals) == S.Reals
    assert S.Complexes.union(S.Reals) == S.Complexes
    assert S.Complexes == ComplexPlane(S.Reals * S.Reals)
Exemple #4
0
def test_ComplexPlane_contains():

    # contains in ComplexPlane
    a = Interval(2, 3)
    b = Interval(4, 6)
    c = Interval(7, 9)
    c1 = ComplexPlane(a*b)
    c2 = ComplexPlane(Union(a*b, c*a))
    assert 2.5 + 4.5*I in c1
    assert 2 + 4*I in c1
    assert 3 + 4*I in c1
    assert 8 + 2.5*I in c2
    assert 2.5 + 6.1*I not in c1
    assert 4.5 + 3.2*I not in c1

    r1 = Interval(0, 1)
    theta1 = Interval(0, 2*S.Pi)
    c3 = ComplexPlane(r1*theta1, polar=True)
    assert 0.5 + 0.6*I in c3
    assert I in c3
    assert 1 in c3
    assert 0 in c3
    assert 1 + I not in c3
    assert 1 - I not in c3
Exemple #5
0
def test_ComplexPlane_union():

    # Polar form
    c1 = ComplexPlane(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
    c2 = ComplexPlane(Interval(0, 1)*Interval(0, S.Pi), polar=True)
    c3 = ComplexPlane(Interval(0, oo)*Interval(0, S.Pi), polar=True)
    c4 = ComplexPlane(Interval(0, oo)*Interval(S.Pi, 2*S.Pi), polar=True)

    p1 = Union(Interval(0, 1)*Interval(0, 2*S.Pi), Interval(0, 1)*Interval(0, S.Pi))
    p2 = Union(Interval(0, oo)*Interval(0, S.Pi), Interval(0, oo)*Interval(S.Pi, 2*S.Pi))

    assert c1.union(c2) == ComplexPlane(p1, polar=True)
    assert c3.union(c4) == ComplexPlane(p2, polar=True)

    # Rectangular form
    c5 = ComplexPlane(Interval(2, 5)*Interval(6, 9))
    c6 = ComplexPlane(Interval(4, 6)*Interval(10, 12))
    c7 = ComplexPlane(Interval(0, 10)*Interval(-10, 0))
    c8 = ComplexPlane(Interval(12, 16)*Interval(14, 20))

    p3 = Union(Interval(2, 5)*Interval(6, 9), Interval(4, 6)*Interval(10, 12))
    p4 = Union(Interval(0, 10)*Interval(-10, 0), Interval(12, 16)*Interval(14, 20))

    assert c5.union(c6) == ComplexPlane(p3)
    assert c7.union(c8) == ComplexPlane(p4)

    assert c1.union(Interval(2, 4)) == Union(c1, Interval(2, 4))
    assert c5.union(Interval(2, 4)) == Union(c5, Interval(2, 4))
Exemple #6
0
def test_ComplexPlane_intersect():

    # Polar form
    X_axis = ComplexPlane(Interval(0, oo)*FiniteSet(0, S.Pi), polar=True)

    unit_disk = ComplexPlane(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
    upper_half_unit_disk = ComplexPlane(Interval(0, 1)*Interval(0, S.Pi), polar=True)
    upper_half_disk = ComplexPlane(Interval(0, oo)*Interval(0, S.Pi), polar=True)
    lower_half_disk = ComplexPlane(Interval(0, oo)*Interval(S.Pi, 2*S.Pi), polar=True)
    right_half_disk = ComplexPlane(Interval(0, oo)*Interval(-S.Pi/2, S.Pi/2), polar=True)
    first_quad_disk = ComplexPlane(Interval(0, oo)*Interval(0, S.Pi/2), polar=True)

    assert upper_half_disk.intersect(unit_disk) == upper_half_unit_disk
    assert right_half_disk.intersect(first_quad_disk) == first_quad_disk
    assert upper_half_disk.intersect(right_half_disk) == first_quad_disk
    assert upper_half_disk.intersect(lower_half_disk) == X_axis

    c1 = ComplexPlane(Interval(0, 4)*Interval(0, 2*S.Pi), polar=True)
    assert c1.intersect(Interval(1, 5)) == Interval(1, 4)
    assert c1.intersect(Interval(4, 9)) == FiniteSet(4)
    assert c1.intersect(Interval(5, 12)) == EmptySet()

    # Rectangular form
    X_axis = ComplexPlane(Interval(-oo, oo)*FiniteSet(0))

    unit_square = ComplexPlane(Interval(-1, 1)*Interval(-1, 1))
    upper_half_unit_square = ComplexPlane(Interval(-1, 1)*Interval(0, 1))
    upper_half_plane = ComplexPlane(Interval(-oo, oo)*Interval(0, oo))
    lower_half_plane = ComplexPlane(Interval(-oo, oo)*Interval(-oo, 0))
    right_half_plane = ComplexPlane(Interval(0, oo)*Interval(-oo, oo))
    first_quad_plane = ComplexPlane(Interval(0, oo)*Interval(0, oo))

    assert upper_half_plane.intersect(unit_square) == upper_half_unit_square
    assert right_half_plane.intersect(first_quad_plane) == first_quad_plane
    assert upper_half_plane.intersect(right_half_plane) == first_quad_plane
    assert upper_half_plane.intersect(lower_half_plane) == X_axis

    c1 = ComplexPlane(Interval(-5, 5)*Interval(-10, 10))
    assert c1.intersect(Interval(2, 7)) == Interval(2, 5)
    assert c1.intersect(Interval(5, 7)) == FiniteSet(5)
    assert c1.intersect(Interval(6, 9)) == EmptySet()

    # unevaluated object
    C1 = ComplexPlane(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
    C2 = ComplexPlane(Interval(-1, 1)*Interval(-1, 1))
    assert C1.intersect(C2) == Intersection(C1, C2)