MCPcopy
hub / github.com/protomaps/PMTiles / test_roundtrip

Method test_roundtrip

python/pmtiles/test/test_convert.py:42–103  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

40 pass
41
42 def test_roundtrip(self):
43 with open("test_tmp.pmtiles", "wb") as f:
44 writer = Writer(f)
45 writer.write_tile(0, b"0")
46 writer.write_tile(1, b"1")
47 writer.write_tile(2, b"2")
48 writer.write_tile(3, b"3")
49 writer.write_tile(4, b"4")
50 writer.write_tile(5, b"5")
51 writer.write_tile(6, b"6")
52 writer.write_tile(7, b"7")
53
54 header = {
55 "tile_type": TileType.MVT,
56 "tile_compression": Compression.GZIP,
57 "min_zoom": 0,
58 "max_zoom": 2,
59 "min_lon_e7": 0,
60 "max_lon_e7": 0,
61 "min_lat_e7": 0,
62 "max_lat_e7": 0,
63 "center_zoom": 0,
64 "center_lon_e7": 0,
65 "center_lat_e7": 0,
66 }
67
68 metadata = {
69 "vector_layers": ['vector','layers'],
70 "tilestats":{'tile':'stats'},
71 }
72 metadata["minzoom"] = header["min_zoom"]
73 metadata["maxzoom"] = header["max_zoom"]
74 min_lon = header["min_lon_e7"] / 10000000
75 min_lat = header["min_lat_e7"] / 10000000
76 max_lon = header["max_lon_e7"] / 10000000
77 max_lat = header["max_lat_e7"] / 10000000
78 metadata["bounds"] = f"{min_lon},{min_lat},{max_lon},{max_lat}"
79 center_lon = header["center_lon_e7"] / 10000000
80 center_lat = header["center_lat_e7"] / 10000000
81 center_zoom = header["center_zoom"]
82 metadata["center"] = f"{center_lon},{center_lat},{center_zoom}"
83 metadata["format"] = "pbf"
84
85 writer.finalize(
86 header,
87 metadata,
88 )
89
90 pmtiles_to_mbtiles("test_tmp.pmtiles", "test_tmp.mbtiles")
91 conn = sqlite3.connect('test_tmp.mbtiles')
92 cursor = conn.cursor()
93 res = cursor.execute("SELECT value from metadata where name = 'json'")
94 data = res.fetchone()[0]
95 json_metadata = json.loads(data)
96 self.assertEqual(json_metadata['vector_layers'], ['vector', 'layers'])
97 self.assertEqual(json_metadata['tilestats'], {'tile':'stats'})
98
99 mbtiles_to_pmtiles("test_tmp.mbtiles", "test_tmp_2.pmtiles", 3)

Callers

nothing calls this directly

Calls 7

write_tileMethod · 0.95
finalizeMethod · 0.95
WriterClass · 0.90
pmtiles_to_mbtilesFunction · 0.90
mbtiles_to_pmtilesFunction · 0.90
pmtiles_to_dirFunction · 0.90
disk_to_pmtilesFunction · 0.90

Tested by

no test coverage detected