Repository: sympy/sympy

Issue:
Rename ComplexPlane to ComplexRegion
See https://github.com/sympy/sympy/pull/9500#discussion_r37886701

The complex plane is the whole complex plane, whereas an instance of `ComplexPlane` is generally not.

Discussion:

Patch:
diff --git a/doc/src/modules/sets.rst b/doc/src/modules/sets.rst
index dafafc9591..c4fc93d66e 100644
--- a/doc/src/modules/sets.rst
+++ b/doc/src/modules/sets.rst
@@ -87,9 +87,9 @@ Range
 .. autoclass:: Range
    :members:
 
-ComplexPlane
-^^^^^^^^^^^^
-.. autoclass:: ComplexPlane
+ComplexRegion
+^^^^^^^^^^^^^
+.. autoclass:: ComplexRegion
    :members:
 
 .. autofunction:: normalize_theta_set
diff --git a/sympy/printing/latex.py b/sympy/printing/latex.py
index d177f2aedd..bf0658c4bc 100644
--- a/sympy/printing/latex.py
+++ b/sympy/printing/latex.py
@@ -1578,7 +1578,7 @@ def _print_ConditionSet(self, s):
             self._print(s.base_set),
             self._print(s.condition.expr))
 
-    def _print_ComplexPlane(self, s):
+    def _print_ComplexRegion(self, s):
         vars_print = ', '.join([self._print(var) for var in s.args[0].variables])
         return r"\left\{%s\; |\; %s \in %s \right\}" % (
             self._print(s.args[0].expr),
diff --git a/sympy/printing/pretty/pretty.py b/sympy/printing/pretty/pretty.py
index b46013af50..440ebaae27 100644
--- a/sympy/printing/pretty/pretty.py
+++ b/sympy/printing/pretty/pretty.py
@@ -1531,7 +1531,7 @@ def _print_ConditionSet(self, ts):
         return self._print_seq((variables, bar, variables, inn,
                                 base, _and, cond), "{", "}", ' ')
 
-    def _print_ComplexPlane(self, ts):
+    def _print_ComplexRegion(self, ts):
         if self._use_unicode:
             inn = u("\N{SMALL ELEMENT OF}")
         else:
diff --git a/sympy/sets/__init__.py b/sympy/sets/__init__.py
index ad1ed12cd1..3592acef91 100644
--- a/sympy/sets/__init__.py
+++ b/sympy/sets/__init__.py
@@ -1,5 +1,5 @@
 from .sets import (Set, Interval, Union, EmptySet, FiniteSet, ProductSet,
         Intersection, imageset, Complement, SymmetricDifference)
-from .fancysets import TransformationSet, ImageSet, Range, ComplexPlane
+from .fancysets import TransformationSet, ImageSet, Range, ComplexRegion
 from .contains import Contains
 from .conditionset import ConditionSet
diff --git a/sympy/sets/fancysets.py b/sympy/sets/fancysets.py
index 0a597f4edf..64c45366a7 100644
--- a/sympy/sets/fancysets.py
+++ b/sympy/sets/fancysets.py
@@ -543,7 +543,7 @@ def normalize_theta_set(theta):
         raise ValueError(" %s is not a real set" % (theta))
 
 
-class ComplexPlane(Set):
+class ComplexRegion(Set):
     """
     Represents the Set of all Complex Numbers. It can represent a
     region of Complex Plane in both the standard forms Polar and
@@ -565,23 +565,23 @@ class ComplexPlane(Set):
     Examples
     ========
 
-    >>> from sympy.sets.fancysets import ComplexPlane
+    >>> from sympy.sets.fancysets import ComplexRegion
     >>> from sympy.sets import Interval
     >>> from sympy import S, I, Union
     >>> a = Interval(2, 3)
     >>> b = Interval(4, 6)
     >>> c = Interval(1, 8)
-    >>> c1 = ComplexPlane(a*b)  # Rectangular Form
+    >>> c1 = ComplexRegion(a*b)  # Rectangular Form
     >>> c1
-    ComplexPlane(Lambda((_x, _y), _x + _y*I), [2, 3] x [4, 6])
+    ComplexRegion(Lambda((_x, _y), _x + _y*I), [2, 3] x [4, 6])
 
     * c1 represents the rectangular region in complex plane
       surrounded by the coordinates (2, 4), (3, 4), (3, 6) and
       (2, 6), of the four vertices.
 
-    >>> c2 = ComplexPlane(Union(a*b, b*c))
+    >>> c2 = ComplexRegion(Union(a*b, b*c))
     >>> c2
-    ComplexPlane(Lambda((_x, _y), _x + _y*I),
+    ComplexRegion(Lambda((_x, _y), _x + _y*I),
                  [2, 3] x [4, 6] U [4, 6] x [1, 8])
 
     * c2 represents the Union of two rectangular regions in complex
@@ -596,9 +596,9 @@ class ComplexPlane(Set):
 
     >>> r = Interval(0, 1)
     >>> theta = Interval(0, 2*S.Pi)
-    >>> c2 = ComplexPlane(r*theta, polar=True)  # Polar Form
+    >>> c2 = ComplexRegion(r*theta, polar=True)  # Polar Form
     >>> c2  # unit Disk
-    ComplexPlane(Lambda((_r, _theta), _r*(I*sin(_theta) + cos(_theta))),
+    ComplexRegion(Lambda((_r, _theta), _r*(I*sin(_theta) + cos(_theta))),
                  [0, 1] x [0, 2*pi))
 
     * c2 represents the region in complex plane inside the
@@ -609,11 +609,11 @@ class ComplexPlane(Set):
     >>> 1 + 2*I in c2
     False
 
-    >>> 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)
+    >>> unit_disk = ComplexRegion(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
+    >>> upper_half_unit_disk = ComplexRegion(Interval(0, 1)*Interval(0, S.Pi), polar=True)
     >>> intersection = unit_disk.intersect(upper_half_unit_disk)
     >>> intersection
-    ComplexPlane(Lambda((_r, _theta), _r*(I*sin(_theta) + cos(_theta))), [0, 1] x [0, pi])
+    ComplexRegion(Lambda((_r, _theta), _r*(I*sin(_theta) + cos(_theta))), [0, 1] x [0, pi])
     >>> intersection == upper_half_unit_disk
     True
 
@@ -623,7 +623,7 @@ class ComplexPlane(Set):
     Reals
 
     """
-    is_ComplexPlane = True
+    is_ComplexRegion = True
 
     def __new__(cls, sets, polar=False):
         from sympy import symbols, Dummy
@@ -637,7 +637,7 @@ def __new__(cls, sets, polar=False):
             if all(_a.is_FiniteSet for _a in sets.args) and (len(sets.args) == 2):
 
                 # ** ProductSet of FiniteSets in the Complex Plane. **
-                # For Cases like ComplexPlane({2, 4}*{3}), It
+                # For Cases like ComplexRegion({2, 4}*{3}), It
                 # would return {2 + 3*I, 4 + 3*I}
                 complex_num = []
                 for x in sets.args[0]:
@@ -682,14 +682,14 @@ def sets(self):
         Examples
         ========
 
-        >>> from sympy import Interval, ComplexPlane, Union
+        >>> from sympy import Interval, ComplexRegion, Union
         >>> a = Interval(2, 3)
         >>> b = Interval(4, 5)
         >>> c = Interval(1, 7)
-        >>> C1 = ComplexPlane(a*b)
+        >>> C1 = ComplexRegion(a*b)
         >>> C1.sets
         [2, 3] x [4, 5]
-        >>> C2 = ComplexPlane(Union(a*b, b*c))
+        >>> C2 = ComplexRegion(Union(a*b, b*c))
         >>> C2.sets
         [2, 3] x [4, 5] U [4, 5] x [1, 7]
 
@@ -704,14 +704,14 @@ def psets(self):
         Examples
         ========
 
-        >>> from sympy import Interval, ComplexPlane, Union
+        >>> from sympy import Interval, ComplexRegion, Union
         >>> a = Interval(2, 3)
         >>> b = Interval(4, 5)
         >>> c = Interval(1, 7)
-        >>> C1 = ComplexPlane(a*b)
+        >>> C1 = ComplexRegion(a*b)
         >>> C1.psets
         ([2, 3] x [4, 5],)
-        >>> C2 = ComplexPlane(Union(a*b, b*c))
+        >>> C2 = ComplexRegion(Union(a*b, b*c))
         >>> C2.psets
         ([2, 3] x [4, 5], [4, 5] x [1, 7])
 
@@ -733,14 +733,14 @@ def a_interval(self):
         Examples
         ========
 
-        >>> from sympy import Interval, ComplexPlane, Union
+        >>> from sympy import Interval, ComplexRegion, Union
         >>> a = Interval(2, 3)
         >>> b = Interval(4, 5)
         >>> c = Interval(1, 7)
-        >>> C1 = ComplexPlane(a*b)
+        >>> C1 = ComplexRegion(a*b)
         >>> C1.a_interval
         [2, 3]
-        >>> C2 = ComplexPlane(Union(a*b, b*c))
+        >>> C2 = ComplexRegion(Union(a*b, b*c))
         >>> C2.a_interval
         [2, 3] U [4, 5]
 
@@ -762,14 +762,14 @@ def b_interval(self):
         Examples
         ========
 
-        >>> from sympy import Interval, ComplexPlane, Union
+        >>> from sympy import Interval, ComplexRegion, Union
         >>> a = Interval(2, 3)
         >>> b = Interval(4, 5)
         >>> c = Interval(1, 7)
-        >>> C1 = ComplexPlane(a*b)
+        >>> C1 = ComplexRegion(a*b)
         >>> C1.b_interval
         [4, 5]
-        >>> C2 = ComplexPlane(Union(a*b, b*c))
+        >>> C2 = ComplexRegion(Union(a*b, b*c))
         >>> C2.b_interval
         [1, 7]
 
@@ -789,14 +789,14 @@ def polar(self):
         Examples
         ========
 
-        >>> from sympy import Interval, ComplexPlane, Union, S
+        >>> from sympy import Interval, ComplexRegion, Union, S
         >>> a = Interval(2, 3)
         >>> b = Interval(4, 5)
         >>> theta = Interval(0, 2*S.Pi)
-        >>> C1 = ComplexPlane(a*b)
+        >>> C1 = ComplexRegion(a*b)
         >>> C1.polar
         False
-        >>> C2 = ComplexPlane(a*theta, polar=True)
+        >>> C2 = ComplexRegion(a*theta, polar=True)
         >>> C2.polar
         True
         """
@@ -810,13 +810,13 @@ def _measure(self):
         Examples
         ========
 
-        >>> from sympy import Interval, ComplexPlane, S
+        >>> from sympy import Interval, ComplexRegion, S
         >>> a, b = Interval(2, 5), Interval(4, 8)
         >>> c = Interval(0, 2*S.Pi)
-        >>> c1 = ComplexPlane(a*b)
+        >>> c1 = ComplexRegion(a*b)
         >>> c1.measure
         12
-        >>> c2 = ComplexPlane(a*c, polar=True)
+        >>> c2 = ComplexRegion(a*c, polar=True)
         >>> c2.measure
         6*pi
 
@@ -849,10 +849,10 @@ def _contains(self, other):
 
     def _intersect(self, other):
 
-        if other.is_ComplexPlane:
+        if other.is_ComplexRegion:
             # self in rectangular form
             if (not self.polar) and (not other.polar):
-                return ComplexPlane(Intersection(self.sets, other.sets))
+                return ComplexRegion(Intersection(self.sets, other.sets))
 
             # self in polar form
             elif self.polar and other.polar:
@@ -866,7 +866,7 @@ def _intersect(self, other):
                    (2*S.Pi in theta2 and S(0) in theta1)):
                     new_theta_interval = Union(new_theta_interval,
                                                FiniteSet(0))
-                return ComplexPlane(new_r_interval*new_theta_interval,
+                return ComplexRegion(new_r_interval*new_theta_interval,
                                     polar=True)
 
         if other is S.Reals:
@@ -893,15 +893,15 @@ def _intersect(self, other):
 
     def _union(self, other):
 
-        if other.is_ComplexPlane:
+        if other.is_ComplexRegion:
 
             # self in rectangular form
             if (not self.polar) and (not other.polar):
-                return ComplexPlane(Union(self.sets, other.sets))
+                return ComplexRegion(Union(self.sets, other.sets))
 
             # self in polar form
             elif self.polar and other.polar:
-                return ComplexPlane(Union(self.sets, other.sets), polar=True)
+                return ComplexRegion(Union(self.sets, other.sets), polar=True)
 
         if other is S.Reals:
             return self
@@ -909,14 +909,14 @@ def _union(self, other):
         return None
 
 
-class Complexes(with_metaclass(Singleton, ComplexPlane)):
+class Complexes(with_metaclass(Singleton, ComplexRegion)):
 
     def __new__(cls):
-        return ComplexPlane.__new__(cls, S.Reals*S.Reals)
+        return ComplexRegion.__new__(cls, S.Reals*S.Reals)
 
     def __eq__(self, other):
-        if other == ComplexPlane(S.Reals*S.Reals):
+        if other == ComplexRegion(S.Reals*S.Reals):
             return True
 
     def __hash__(self):
-        return hash(ComplexPlane(S.Reals*S.Reals))
+        return hash(ComplexRegion(S.Reals*S.Reals))
diff --git a/sympy/sets/sets.py b/sympy/sets/sets.py
index a748db622c..a447d607cb 100644
--- a/sympy/sets/sets.py
+++ b/sympy/sets/sets.py
@@ -42,7 +42,7 @@ class Set(Basic):
     is_EmptySet = None
     is_UniversalSet = None
     is_Complement = None
-    is_ComplexPlane = False
+    is_ComplexRegion = False
 
     @staticmethod
     def _infimum_key(expr):


Test patch:
diff --git a/sympy/core/tests/test_args.py b/sympy/core/tests/test_args.py
index a21a53ea15..88c4c68264 100644
--- a/sympy/core/tests/test_args.py
+++ b/sympy/core/tests/test_args.py
@@ -542,15 +542,15 @@ def test_sympy__sets__fancysets__Complexes():
     assert _test_args(Complexes())
 
 
-def test_sympy__sets__fancysets__ComplexPlane():
-    from sympy.sets.fancysets import ComplexPlane
+def test_sympy__sets__fancysets__ComplexRegion():
+    from sympy.sets.fancysets import ComplexRegion
     from sympy import S
     from sympy.sets import Interval
     a = Interval(0, 1)
     b = Interval(2, 3)
     theta = Interval(0, 2*S.Pi)
-    assert _test_args(ComplexPlane(a*b))
-    assert _test_args(ComplexPlane(a*theta, polar=True))
+    assert _test_args(ComplexRegion(a*b))
+    assert _test_args(ComplexRegion(a*theta, polar=True))
 
 
 def test_sympy__sets__fancysets__ImageSet():
diff --git a/sympy/printing/pretty/tests/test_pretty.py b/sympy/printing/pretty/tests/test_pretty.py
index d32806b57f..c35bcf549d 100644
--- a/sympy/printing/pretty/tests/test_pretty.py
+++ b/sympy/printing/pretty/tests/test_pretty.py
@@ -3108,13 +3108,13 @@ def test_pretty_ConditionSet():
     assert upretty(ConditionSet(Lambda(x, Eq(sin(x), 0)), S.Reals)) == ucode_str
 
 
-def test_pretty_ComplexPlane():
-    from sympy import ComplexPlane
+def test_pretty_ComplexRegion():
+    from sympy import ComplexRegion
     ucode_str = u('{x + y⋅ⅈ | x, y ∊ [3, 5] × [4, 6]}')
-    assert upretty(ComplexPlane(Interval(3, 5)*Interval(4, 6))) == ucode_str
+    assert upretty(ComplexRegion(Interval(3, 5)*Interval(4, 6))) == ucode_str
 
     ucode_str = u('{r⋅(ⅈ⋅sin(θ) + cos(θ)) | r, θ ∊ [0, 1] × [0, 2⋅π)}')
-    assert upretty(ComplexPlane(Interval(0, 1)*Interval(0, 2*pi), polar=True)) == ucode_str
+    assert upretty(ComplexRegion(Interval(0, 1)*Interval(0, 2*pi), polar=True)) == ucode_str
 
 
 def test_ProductSet_paranthesis():
diff --git a/sympy/printing/tests/test_latex.py b/sympy/printing/tests/test_latex.py
index 56db3af167..d9e61ac0ae 100644
--- a/sympy/printing/tests/test_latex.py
+++ b/sympy/printing/tests/test_latex.py
@@ -15,7 +15,7 @@
     uppergamma, zeta, subfactorial, totient, elliptic_k, elliptic_f,
     elliptic_e, elliptic_pi, cos, tan, Wild, true, false, Equivalent, Not,
     Contains, divisor_sigma, SymmetricDifference, SeqPer, SeqFormula,
-    SeqAdd, SeqMul, fourier_series, pi, ConditionSet, ComplexPlane, fps)
+    SeqAdd, SeqMul, fourier_series, pi, ConditionSet, ComplexRegion, fps)
 
 
 from sympy.ntheory.factor_ import udivisor_sigma
@@ -616,10 +616,10 @@ def test_latex_ConditionSet():
         r"\left\{x\; |\; x \in \mathbb{R} \wedge x^{2} = 1 \right\}"
 
 
-def test_latex_ComplexPlane():
-    assert latex(ComplexPlane(Interval(3, 5)*Interval(4, 6))) == \
+def test_latex_ComplexRegion():
+    assert latex(ComplexRegion(Interval(3, 5)*Interval(4, 6))) == \
         r"\left\{x + y i\; |\; x, y \in \left[3, 5\right] \times \left[4, 6\right] \right\}"
-    assert latex(ComplexPlane(Interval(0, 1)*Interval(0, 2*pi), polar=True)) == \
+    assert latex(ComplexRegion(Interval(0, 1)*Interval(0, 2*pi), polar=True)) == \
         r"\left\{r \left(i \sin{\left (\theta \right )} + \cos{\left (\theta \right )}\right)\; |\; r, \theta \in \left[0, 1\right] \times \left[0, 2 \pi\right) \right\}"
 
 
diff --git a/sympy/sets/tests/test_fancysets.py b/sympy/sets/tests/test_fancysets.py
index 589b8d09e6..a15a09e22b 100644
--- a/sympy/sets/tests/test_fancysets.py
+++ b/sympy/sets/tests/test_fancysets.py
@@ -1,6 +1,6 @@
 from sympy.core.compatibility import range
 from sympy.sets.fancysets import (ImageSet, Range, normalize_theta_set,
-                                  ComplexPlane)
+                                  ComplexRegion)
 from sympy.sets.sets import (FiniteSet, Interval, imageset, EmptySet, Union,
                              Intersection)
 from sympy import (S, Symbol, Lambda, symbols, cos, sin, pi, oo, Basic,
@@ -198,7 +198,7 @@ def test_Complex():
     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)
+    assert S.Complexes == ComplexRegion(S.Reals*S.Reals)
 
 
 def take(n, iterable):
@@ -276,14 +276,14 @@ def test_ImageSet_simplification():
             imageset(Lambda(m, sin(tan(m))), S.Integers)
 
 
-def test_ComplexPlane_contains():
+def test_ComplexRegion_contains():
 
-    # contains in ComplexPlane
+    # contains in ComplexRegion
     a = Interval(2, 3)
     b = Interval(4, 6)
     c = Interval(7, 9)
-    c1 = ComplexPlane(a*b)
-    c2 = ComplexPlane(Union(a*b, c*a))
+    c1 = ComplexRegion(a*b)
+    c2 = ComplexRegion(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
@@ -293,7 +293,7 @@ def test_ComplexPlane_contains():
 
     r1 = Interval(0, 1)
     theta1 = Interval(0, 2*S.Pi)
-    c3 = ComplexPlane(r1*theta1, polar=True)
+    c3 = ComplexRegion(r1*theta1, polar=True)
     assert 0.5 + 0.6*I in c3
     assert I in c3
     assert 1 in c3
@@ -302,89 +302,89 @@ def test_ComplexPlane_contains():
     assert 1 - I not in c3
 
 
-def test_ComplexPlane_intersect():
+def test_ComplexRegion_intersect():
 
     # Polar form
-    X_axis = ComplexPlane(Interval(0, oo)*FiniteSet(0, S.Pi), polar=True)
+    X_axis = ComplexRegion(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)
+    unit_disk = ComplexRegion(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
+    upper_half_unit_disk = ComplexRegion(Interval(0, 1)*Interval(0, S.Pi), polar=True)
+    upper_half_disk = ComplexRegion(Interval(0, oo)*Interval(0, S.Pi), polar=True)
+    lower_half_disk = ComplexRegion(Interval(0, oo)*Interval(S.Pi, 2*S.Pi), polar=True)
+    right_half_disk = ComplexRegion(Interval(0, oo)*Interval(-S.Pi/2, S.Pi/2), polar=True)
+    first_quad_disk = ComplexRegion(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)
+    c1 = ComplexRegion(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))
+    X_axis = ComplexRegion(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))
+    unit_square = ComplexRegion(Interval(-1, 1)*Interval(-1, 1))
+    upper_half_unit_square = ComplexRegion(Interval(-1, 1)*Interval(0, 1))
+    upper_half_plane = ComplexRegion(Interval(-oo, oo)*Interval(0, oo))
+    lower_half_plane = ComplexRegion(Interval(-oo, oo)*Interval(-oo, 0))
+    right_half_plane = ComplexRegion(Interval(0, oo)*Interval(-oo, oo))
+    first_quad_plane = ComplexRegion(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))
+    c1 = ComplexRegion(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))
+    C1 = ComplexRegion(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
+    C2 = ComplexRegion(Interval(-1, 1)*Interval(-1, 1))
     assert C1.intersect(C2) == Intersection(C1, C2)
 
 
-def test_ComplexPlane_union():
+def test_ComplexRegion_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)
+    c1 = ComplexRegion(Interval(0, 1)*Interval(0, 2*S.Pi), polar=True)
+    c2 = ComplexRegion(Interval(0, 1)*Interval(0, S.Pi), polar=True)
+    c3 = ComplexRegion(Interval(0, oo)*Interval(0, S.Pi), polar=True)
+    c4 = ComplexRegion(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)
+    assert c1.union(c2) == ComplexRegion(p1, polar=True)
+    assert c3.union(c4) == ComplexRegion(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))
+    c5 = ComplexRegion(Interval(2, 5)*Interval(6, 9))
+    c6 = ComplexRegion(Interval(4, 6)*Interval(10, 12))
+    c7 = ComplexRegion(Interval(0, 10)*Interval(-10, 0))
+    c8 = ComplexRegion(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 c5.union(c6) == ComplexRegion(p3)
+    assert c7.union(c8) == ComplexRegion(p4)
 
     assert c1.union(Interval(2, 4)) == Union(c1, Interval(2, 4))
     assert c5.union(Interval(2, 4)) == Union(c5, Interval(2, 4))
 
 
-def test_ComplexPlane_measure():
+def test_ComplexRegion_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)
+    c1 = ComplexRegion(a*b)
+    c2 = ComplexRegion(Union(a*theta1, b*theta2), polar=True)
 
     assert c1.measure == 12
     assert c2.measure == 9*pi
@@ -416,11 +416,11 @@ def test_normalize_theta_set():
     raises(ValueError, lambda: normalize_theta_set(S.Complexes))
 
 
-def test_ComplexPlane_FiniteSet():
+def test_ComplexRegion_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)) == \
+    assert ComplexRegion(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)
+    assert ComplexRegion(FiniteSet(2)*FiniteSet(3)) == FiniteSet(2 + 3*I)