예제 #1
0
def test_Extent_to_aspect():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)

    ex1 = ex.to_aspect(3)
    assert ex1.xrange == pytest.approx(ex.xrange)
    assert ex1.yrange == pytest.approx(ex.yrange)

    ex1 = ex.to_aspect(1)
    assert ex1.xrange == pytest.approx((0.3, 0.4))
    assert ex1.yrange == pytest.approx(ex.yrange)

    ex1 = ex.to_aspect(6)
    assert ex1.xrange == pytest.approx(ex.xrange)
    assert ex1.yrange == pytest.approx((0.375, 0.325))

    ex1 = ex.to_aspect(3, False)
    assert ex1.xrange == pytest.approx(ex.xrange)
    assert ex1.yrange == pytest.approx(ex.yrange)

    ex1 = ex.to_aspect(1, False)
    assert ex1.xrange == pytest.approx(ex.xrange)
    assert ex1.yrange == pytest.approx((0.35 + 0.15, 0.35 - 0.15))

    ex1 = ex.to_aspect(6, False)
    assert ex1.xrange == pytest.approx((0.35 - 0.3, 0.35 + 0.3))
    assert ex1.yrange == pytest.approx(ex.yrange)
예제 #2
0
def test_Extent_with_scaling():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)
    ex1 = ex.with_scaling(1)
    assert ex1.xrange == pytest.approx(ex1.xrange)
    assert ex1.yrange == pytest.approx(ex1.yrange)

    ex1 = ex.with_scaling(2)
    assert ex1.xrange == pytest.approx((0.35 - 0.075, 0.35 + 0.075))
    assert ex1.yrange == pytest.approx((0.375, 0.325))
예제 #3
0
def test_Extent_from_3857():
    x, y = mapping._to_3857(0.2, 0.3)
    ex = mapping.Extent.from_centre(0.2, 0.3, xsize=0.1).to_project_3857()
    ex1 = mapping.Extent.from_centre_3857(x, y, xsize=0.1)
    assert ex1.xrange == pytest.approx(ex.xrange)
    assert ex1.yrange == pytest.approx(ex.yrange)

    xx, yy = mapping._to_3857(0.25, 0.4)
    ex = mapping.Extent.from_3857(x, xx, y, yy)
    ex1 = mapping.Extent(0.2, 0.25, 0.3, 0.4).to_project_3857()
    assert ex1.xrange == pytest.approx(ex.xrange)
    assert ex1.yrange == pytest.approx(ex.yrange)
예제 #4
0
def test_Extent_with_absolute_translation():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)
    ex1 = ex.with_absolute_translation(0.6, 0.2)
    assert ex1.xrange == pytest.approx((0.8, 1.1))
    assert ex1.yrange == pytest.approx((0.6, 0.5))

    ex1 = ex.with_absolute_translation(0.6, 0.7)
    assert ex1.xrange == pytest.approx((0.8, 1.1))
    assert ex1.yrange == pytest.approx((1, 0.9))

    ex1 = ex.with_absolute_translation(0.6, -0.4)
    assert ex1.xrange == pytest.approx((0.8, 1.1))
    assert ex1.yrange == pytest.approx((.1, 0))
예제 #5
0
def test_Extent_with_centre():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)
    ex1 = ex.with_centre(0.3, 0.4)
    assert ex1.xrange == pytest.approx((.15, .45))
    assert ex1.yrange == pytest.approx((.45, .35))
    ex1 = ex.with_centre(0, 0.4)
    assert ex1.xrange == pytest.approx((-.15, .15))
    assert ex1.yrange == pytest.approx((.45, .35))
    ex1 = ex.with_centre(0, 0.01)
    assert ex1.xrange == pytest.approx((-.15, .15))
    assert ex1.yrange == pytest.approx((0.1, 0))
    ex1 = ex.with_centre(0, 0.98)
    assert ex1.xrange == pytest.approx((-.15, .15))
    assert ex1.yrange == pytest.approx((1, 0.9))
예제 #6
0
def test_Extent_construct():
    mapping.Extent(0.2, 0.5, 0.3, 0.4)
    mapping.Extent(-0.8, -0.5, 0.3, 0.4)
    with pytest.raises(ValueError):
        mapping.Extent(0.5, 0.2, 0.3, 0.4)
    with pytest.raises(ValueError):
        mapping.Extent(0.2, 0.5, 0.4, 0.3)
    with pytest.raises(ValueError):
        mapping.Extent(0.2, 0.5, -0.1, 0.4)
    with pytest.raises(ValueError):
        mapping.Extent(0.2, 0.5, 0.3, 1.1)
예제 #7
0
def test_Extent_projection():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)
    ex1 = ex.to_project_3857()
    ex2 = ex.to_project_web_mercator()
    assert_standard_properties(ex)
    assert_standard_properties(ex2)
    x, y = mapping._to_3857(0.2, 0.3)
    xx, yy = mapping._to_3857(0.5, 0.4)
    assert ex1.xmin == pytest.approx(x)
    assert ex1.xmax == pytest.approx(xx)
    assert ex1.width == pytest.approx(xx - x)
    assert ex1.xrange == pytest.approx((x, xx))
    assert ex1.ymin == pytest.approx(y)
    assert ex1.ymax == pytest.approx(yy)
    assert ex1.height == pytest.approx(yy - y)
    assert ex1.yrange == pytest.approx((yy, y))
    assert str(ex1).endswith(" projected as epsg:3857)")
예제 #8
0
def test_Extent_properties():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)
    assert_standard_properties(ex)
예제 #9
0
def ex():
    return mapping.Extent(0.2, 0.5, 0.3, 0.4)
예제 #10
0
def test_Extent_with_translation():
    ex = mapping.Extent(0.2, 0.5, 0.3, 0.4)
    ex1 = ex.with_translation(2, -1)
    assert ex1.xrange == pytest.approx((0.8, 1.1))
    assert ex1.yrange == pytest.approx((0.3, 0.2))
예제 #11
0
def test_Extent_with_centre_lonlat():
    x, y = mapping.project(32, 15)
    ex = mapping.Extent(0.2, 0.4, 0.3, 0.5)
    ex1 = ex.with_centre_lonlat(32, 15)
    assert ex1.xrange == pytest.approx((x - .1, x + .1))
    assert ex1.yrange == pytest.approx((y + .1, y - .1))