""" Test zoom level specification parsing. """ from map_machine.slippy.tile import ( ScaleConfigurationException, parse_zoom_level, ) __author__ = "Sergey Vartanov" __email__ = "me@enzet.ru" def test_zoom_level_1() -> None: """Test one zoom level.""" assert parse_zoom_level("18") == [18] def test_zoom_level_list() -> None: """Test list of zoom levels.""" assert parse_zoom_level("17,18") == [17, 18] assert parse_zoom_level("16,17,18") == [16, 17, 18] def test_zoom_level_range() -> None: """Test range of zoom levels.""" assert parse_zoom_level("16-18") == [16, 17, 18] assert parse_zoom_level("18-18") == [18] def test_zoom_level_mixed() -> None: """Test zoom level specification with list of numbers and ranges.""" assert parse_zoom_level("15,16-18") == [15, 16, 17, 18] assert parse_zoom_level("15,16-18,20") == [15, 16, 17, 18, 20] def test_zoom_level_too_big() -> None: """Test too big zoom level.""" try: parse_zoom_level("21") except ScaleConfigurationException: return assert False def test_zoom_level_negative() -> None: """Test negative zoom level.""" try: parse_zoom_level("-1") except ValueError: return assert False def test_zoom_level_wrong() -> None: """Test too big zoom level.""" try: parse_zoom_level(",") except ValueError: return assert False