def test_containsRegion_Rectangular(self):
        """Test the containsRegion method when passed a RectangularRegion."""
        unit = CircularRegion(cx=10, cy=10, r=3)

        self.assertTrue(
            unit.containsRegion(RectangularRegion(x1=9, y1=9, x2=11, y2=11)),
            "it should contain Rect(9,9-11,11)"
        )

        self.assertFalse(
            unit.containsRegion(RectangularRegion(x1=7.5, y1=7.5, x2=10, y2=10)),
            "it should not contain Rect(7.5,7.5-10,10)"
        )
        self.assertFalse(
            unit.containsRegion(RectangularRegion(x1=7.5, y1=12.5, x2=10, y2=10)),
            "it should not contain Rect(7.5,12.5-10,10)"
        )
        self.assertFalse(
            unit.containsRegion(RectangularRegion(x1=12.5, y1=7.5, x2=10, y2=10)),
            "it should not contain Rect(12.5,7.5-10,10)"
        )
        self.assertFalse(
            unit.containsRegion(RectangularRegion(x1=7.5, y1=12.5, x2=10, y2=10)),
            "it should not contain Rect(7.5,12.5-10,10)"
        )

        self.assertFalse(
            unit.containsRegion(RectangularRegion(x1=0, y1=0, x2=1, y2=1)),
            "it should not contain a RectangularRegion completely outside"
        )
        self.assertFalse(
            unit.containsRegion(RectangularRegion(x1=0, y1=0, x2=20, y2=20)),
            "it should not contain a RectangularRegion containing this region"
        )
    def test_containsRegion_Circular(self):
        """Test the containsRegion method when passed a CircularRegion."""
        unit = CircularRegion(cx=10, cy=10, r=3)

        self.assertTrue(unit.containsRegion(unit), "it should contain itself")
        self.assertTrue(
            unit.containsRegion(CircularRegion(cx=10, cy=10, r=3)),
            "it should contain a CircularRegion representing the same geometric region"
        )
        self.assertTrue(
            unit.containsRegion(CircularRegion(cx=8, cy=10, r=0.5)),
            "it should contain a CircularRegion inside"
        )
        self.assertTrue(
            unit.containsRegion(CircularRegion(cx=8, cy=10, r=1)),
            "it should contain a CircularRegion inside, but tangent to the circle"
        )

        self.assertFalse(
            unit.containsRegion(CircularRegion(cx=8, cy=10, r=1.1)),
            "it should not contain a CircularRegion that extends outside"
        )
        self.assertFalse(
            unit.containsRegion(CircularRegion(cx=1, cy=1, r=1)),
            "it should not contain a CircularRegion completely outside"
        )
        self.assertFalse(
            unit.containsRegion(CircularRegion(cx=10, cy=10, r=5)),
            "it should not contain a CircularRegion containing this region"
        )
    def test_containsRegion_NotRegion(self):
        """Test the containsRegion method when passed an unsupported type."""
        unit = CircularRegion(cx=10, cy=10, r=3)

        with self.assertRaises(ValueError):
            unit.containsRegion("NotARegionInstance")