from scripts.render_operator_polygon_label_qa import geometry_rings def test_geometry_rings_yields_polygon_exterior_and_hole() -> None: exterior = [[0, 0], [1, 0], [1, 1], [0, 0]] hole = [[0.2, 0.2], [0.4, 0.2], [0.2, 0.2]] assert list(geometry_rings({"type": "Polygon", "coordinates": [exterior, hole]})) == [ exterior, hole, ] def test_geometry_rings_flattens_multipolygon_rings() -> None: first = [[0, 0], [1, 0], [0, 0]] second = [[2, 2], [3, 2], [2, 2]] assert list( geometry_rings({"type": "MultiPolygon", "coordinates": [[first], [second]]}) ) == [first, second] def test_geometry_rings_ignores_non_polygon_geometry() -> None: assert list(geometry_rings({"type": "Point", "coordinates": [0, 0]})) == []