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)
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))
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)
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))
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))
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)
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)")
def test_Extent_properties(): ex = mapping.Extent(0.2, 0.5, 0.3, 0.4) assert_standard_properties(ex)
def ex(): return mapping.Extent(0.2, 0.5, 0.3, 0.4)
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))
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))