Example #1
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)