def test_region_merge(): first = geometry.Region(10, 10, 20, 20) second = geometry.Region(10, 5, 25, 19) merged = geometry.Region.merge((first, second)) assert merged.left == 10 assert merged.top == 5 assert merged.right == 25 assert merged.bottom == 20
def test_region_clamp(): region = geometry.Region(200, -20, 600, 75) bounds = geometry.Region(200, 0, 500, 80) clamped = region.clamp(bounds) assert clamped.left == 200 assert clamped.top == 0 assert clamped.right == 500 assert clamped.bottom == 75 region = geometry.Region(0, 0, 100, 100) bounds = geometry.Region(200, 250, 500, 500) with pytest.raises(ValueError): region.clamp(bounds)
def test_region_move(): region = geometry.Region(5, 5, 10, 10) moved = region.move(-8, 700) assert moved.left == -3 assert moved.top == 705 assert moved.right == 2 assert moved.bottom == 710
def test_region_scale(): region = geometry.Region(5, 5, 10, 10) scaled = region.scale(2) assert scaled.left == 10 assert scaled.top == 10 assert scaled.right == 20 assert scaled.bottom == 20
def test_region_height_setter(): region = geometry.Region(10, 5, 30, 15) assert region.width == 20 assert region.height == 10 assert region.center == geometry.Point(20, 10) region.height = 30 assert region.width == 20 assert region.height == 30 assert region.center == geometry.Point(20, 10)
def test_region_rezise(): region = geometry.Region(20, 40, 30, 60) resized = region.resize(5) assert resized.left == 15 assert resized.top == 35 assert resized.right == 35 assert resized.bottom == 65 resized = region.resize(-2) assert resized.left == 22 assert resized.top == 42 assert resized.right == 28 assert resized.bottom == 58 with pytest.raises(ValueError): region.resize(-5)
def test_region_contains(): region = geometry.Region(-10, 15, 255, 137) assert region.contains(geometry.Point(15, 90)) assert region.contains(geometry.Point(-10, 90)) assert region.contains(geometry.Point(255, 15)) assert not region.contains(geometry.Point(-11, 90)) assert not region.contains(geometry.Point(100, 9000)) assert region.contains(geometry.Region(15, 90, 100, 100)) assert region.contains(geometry.Region(-10, 15, -5, 16)) assert region.contains(geometry.Region(-10, 15, 255, 137)) assert not region.contains(geometry.Region(-11, 15, 137, 137)) assert not region.contains(geometry.Region(15, 90, 100, 10000))
def test_region_resize_varargs(): region = geometry.Region(20, 40, 30, 60) resized = region.resize(5, 10) assert resized.left == 15 assert resized.top == 30 assert resized.right == 35 assert resized.bottom == 70 resized = region.resize(5, 10, 15) assert resized.left == 15 assert resized.top == 30 assert resized.right == 45 assert resized.bottom == 70 resized = region.resize(5, 10, 15, 20) assert resized.left == 15 assert resized.top == 30 assert resized.right == 45 assert resized.bottom == 80 with pytest.raises(ValueError): region.resize(1, 2, 3, 4, 5)
def test_region_iterable(): region = geometry.Region(1, 2, 3, 4) values = [i for i in region] assert values == [1, 2, 3, 4]
def test_region_invalid(): with pytest.raises(ValueError): geometry.Region(10, 10, 5, 20) with pytest.raises(ValueError): geometry.Region(10, 10, 20, 5)
def test_region_to_region(): before = geometry.Region(10, 10, 20, 20) after = geometry.to_region(before) assert before == after
def test_region_center(): assert geometry.Region(10, 5, 25, 10).center == geometry.Point(17, 7)
def test_region_area(): assert geometry.Region(10, 5, 25, 10).area == 75
def test_region_height(): assert geometry.Region(10, 5, 25, 10).height == 5
def test_region_width(): assert geometry.Region(10, 5, 25, 10).width == 15
def test_region_string(): region = geometry.Region(200, -20, 600, 75) assert str(region) == "region:200,-20,600,75"