예제 #1
0
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
예제 #2
0
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)
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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))
예제 #8
0
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)
예제 #9
0
def test_region_iterable():
    region = geometry.Region(1, 2, 3, 4)
    values = [i for i in region]
    assert values == [1, 2, 3, 4]
예제 #10
0
def test_region_invalid():
    with pytest.raises(ValueError):
        geometry.Region(10, 10, 5, 20)

    with pytest.raises(ValueError):
        geometry.Region(10, 10, 20, 5)
예제 #11
0
def test_region_to_region():
    before = geometry.Region(10, 10, 20, 20)
    after = geometry.to_region(before)
    assert before == after
예제 #12
0
def test_region_center():
    assert geometry.Region(10, 5, 25, 10).center == geometry.Point(17, 7)
예제 #13
0
def test_region_area():
    assert geometry.Region(10, 5, 25, 10).area == 75
예제 #14
0
def test_region_height():
    assert geometry.Region(10, 5, 25, 10).height == 5
예제 #15
0
def test_region_width():
    assert geometry.Region(10, 5, 25, 10).width == 15
예제 #16
0
def test_region_string():
    region = geometry.Region(200, -20, 600, 75)
    assert str(region) == "region:200,-20,600,75"