Coverage for gws-app/gws/gis/render/_test.py: 0%
81 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1"""Tests for the render module."""
3import gws
4import gws.test.util as u
5import gws.gis.render as render
6import gws.gis.crs
7import gws.lib.image
10def test_map_view_from_center():
11 size = (400.0, 400.0, gws.Uom.px)
12 center = (100.0, 500.0)
13 crs = gws.gis.crs.WGS84
14 dpi = 1000
15 rotation = 0
16 assert render.map_view_from_center(size, center, crs, dpi, rotation).dpi == 1000
17 assert render.map_view_from_center(size, center, crs, dpi, rotation).pxSize == (400.0, 400.0)
18 assert render.map_view_from_center(size, center, crs, dpi, rotation).rotation == 0
19 assert render.map_view_from_center(size, center, crs, dpi, rotation).mmSize == (10.16, 10.16)
20 assert render.map_view_from_center(size, center, crs, dpi, rotation).center == (100.0, 500.0)
21 assert render.map_view_from_center(size, center, crs, dpi, rotation).scale == 0
22 assert render.map_view_from_center(size, center, crs, dpi, rotation).bounds.crs == crs
23 assert render.map_view_from_center(size, center, crs, dpi, rotation).bounds.extent == (100.0, 500.0, 100.0, 500.0)
26def test_map_view_from_bbox():
27 size = (400.0, 400.0, gws.Uom.px)
28 bbox = (100.0, 100.0, 500.0, 500.0)
29 crs = gws.gis.crs.WGS84
30 dpi = 1000
31 rotation = 0
32 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).dpi == 1000
33 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).rotation == 0
34 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).pxSize == (400.0, 400.0)
35 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).mmSize == (10.16, 10.16)
36 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).center == (300.0, 300.0)
37 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).scale == 3571
38 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).bounds.crs == crs
39 assert render.map_view_from_bbox(size, bbox, crs, dpi, rotation).bounds.extent == (100.0, 100.0, 500.0, 500.0)
42# is it a mapping from the map to px?
43def test_map_view_transformer():
44 size = (400.0, 400.0, gws.Uom.px)
45 bbox = (100.0, 100.0, 500.0, 500.0)
46 crs = gws.gis.crs.WGS84
47 dpi = 1000
48 rotation = 0
49 mv = render.map_view_from_bbox(size, bbox, crs, dpi, rotation)
50 f = render.map_view_transformer(mv)
51 assert f(1, 2) == (-1091, 5490)
54def test_map_view_transformer_rotated():
55 size = (400.0, 400.0, gws.Uom.px)
56 bbox = (100.0, 100.0, 500.0, 500.0)
57 crs = gws.gis.crs.WGS84
58 dpi = 1000
59 rotation = 45
60 mv = render.map_view_from_bbox(size, bbox, crs, dpi, rotation)
61 f = render.map_view_transformer(mv)
62 assert f(1, 2) == (-2449, 2197)
65def test_render_map_mm_bbox():
66 layer = gws.Layer
67 layer.opacity = 0.5
69 p1 = gws.MapRenderInputPlane(layer=layer)
70 p2 = gws.MapRenderInputPlane(layer=layer)
71 p3 = gws.MapRenderInputPlane(layer=layer)
73 mri = gws.MapRenderInput(
74 backgroundColor=0,
75 bbox=(100, 100, 300, 300),
76 crs=gws.gis.crs.WGS84,
77 dpi=1000,
78 mapSize=(200, 200, gws.Uom.mm),
79 # notify = print('callable'),
80 planes=[p1, p2, p3],
81 rotation=0,
82 scale=100)
84 assert render.render_map(mri).__str__() == (
85 "{'planes': [], 'view': {'dpi': 96, 'rotation': 0, 'mmSize': (200, 200), "
86 "'pxSize': (755.9055118110236, 755.9055118110236), 'bounds': {'crs': "
87 "<crs:4326>, 'extent': (100, 100, 300, 300)}, 'center': (200.0, 200.0), "
88 "'scale': 944}}")
91def test_render_map_px_center():
92 layer = gws.Layer
93 layer.opacity = 0.5
95 p1 = gws.MapRenderInputPlane(layer=layer)
96 p2 = gws.MapRenderInputPlane(layer=layer)
97 p3 = gws.MapRenderInputPlane(layer=layer)
99 mri = gws.MapRenderInput(
100 backgroundColor=0,
101 center=(150, 150),
102 crs=gws.gis.crs.WGS84,
103 dpi=1000,
104 mapSize=(200, 200, gws.Uom.px),
105 # notify = print('callable'),
106 planes=[p1, p2, p3],
107 rotation=0,
108 scale=100)
110 assert render.render_map(mri).__str__() == (
111 "{'planes': [], 'view': {'dpi': 96, 'rotation': 0, 'pxSize': (200, 200), "
112 "'mmSize': (52.916666666666664, 52.916666666666664), 'center': (150, 150), "
113 "'scale': 100, 'bounds': {'crs': <crs:4326>, 'extent': (147.35416666666666, "
114 '147.35416666666666, 152.64583333333334, 152.64583333333334)}}}')
117def test_output_to_html_element():
118 p1 = gws.MapRenderOutputPlane()
119 p2 = gws.MapRenderOutputPlane()
120 p3 = gws.MapRenderOutputPlane()
122 mv = gws.MapView(mmSize=(200, 200))
123 mro = gws.MapRenderOutput(view=mv, planes=[p1, p2, p3])
125 assert render.output_to_html_element(mro).to_string() == u.fxml('<div '
126 'style="position:relative;overflow:hidden;left:0;top:0;width:200mm;height:200mm">'
127 '<img/></div>')
130def test_output_to_html_string():
131 p1 = gws.MapRenderOutputPlane()
132 p2 = gws.MapRenderOutputPlane()
133 p3 = gws.MapRenderOutputPlane()
135 mv = gws.MapView(mmSize=(200, 200))
136 mro = gws.MapRenderOutput(view=mv, planes=[p1, p2, p3])
138 assert render.output_to_html_string(mro) == u.fxml('<div '
139 'style="position:relative;overflow:hidden;left:0;top:0;width:200mm;height:200mm">'
140 '<img/></div>')