mirror of
https://github.com/protomaps/PMTiles.git
synced 2026-02-04 10:51:07 +00:00
refactor of python writer; separate pyramid building from i/o
This commit is contained in:
52
python/test/test_writer.py
Normal file
52
python/test/test_writer.py
Normal file
@@ -0,0 +1,52 @@
|
||||
import unittest
|
||||
from pmtiles import Entry
|
||||
from pmtiles.writer import find_leaf_level, make_pyramid
|
||||
|
||||
class TestTilePyramid(unittest.TestCase):
|
||||
def test_root_sorted(self):
|
||||
entries = [
|
||||
Entry(1,0,0,1,1,False),
|
||||
Entry(1,0,1,2,1,False),
|
||||
Entry(1,1,0,3,1,False),
|
||||
Entry(1,1,1,4,1,False),
|
||||
Entry(0,0,0,0,1,False)
|
||||
]
|
||||
root_entries, leaf_dirs = make_pyramid(entries,0,6)
|
||||
self.assertEqual(len(root_entries),5)
|
||||
self.assertEqual(len(leaf_dirs),0)
|
||||
self.assertEqual(root_entries[0].z,0)
|
||||
self.assertEqual(root_entries[4].z,1)
|
||||
|
||||
def test_leafdir(self):
|
||||
entries = [
|
||||
Entry(0,0,0,0,1,False),
|
||||
Entry(1,0,0,1,1,False),
|
||||
Entry(1,0,1,2,1,False),
|
||||
Entry(1,1,0,3,1,False),
|
||||
Entry(1,1,1,4,1,False),
|
||||
Entry(2,0,0,5,1,False),
|
||||
Entry(3,0,0,6,1,False),
|
||||
Entry(2,0,1,7,1,False),
|
||||
Entry(3,0,2,8,1,False)
|
||||
]
|
||||
root_entries, leaf_dirs = make_pyramid(entries,0,7)
|
||||
self.assertEqual(len(root_entries),7)
|
||||
self.assertEqual(len(leaf_dirs),1)
|
||||
self.assertEqual(len(leaf_dirs[0]),4)
|
||||
self.assertEqual(leaf_dirs[0][0].z,2)
|
||||
self.assertEqual(leaf_dirs[0][1].z,2)
|
||||
self.assertEqual(leaf_dirs[0][2].z,3)
|
||||
self.assertEqual(leaf_dirs[0][3].z,3)
|
||||
|
||||
def test_full_z7_pyramid(self):
|
||||
entries = []
|
||||
# create artificial 8 levels
|
||||
for z in range(0,9):
|
||||
for x in range(0,pow(2,z)):
|
||||
for y in range(0,pow(2,z)):
|
||||
entries.append(Entry(z,x,y,0,0,False))
|
||||
self.assertEqual(find_leaf_level(entries,21845),7)
|
||||
root_entries, leaf_dirs = make_pyramid(entries,0)
|
||||
self.assertEqual(len(root_entries),21845)
|
||||
self.assertEqual(len(leaf_dirs),4)
|
||||
self.assertTrue(len(leaf_dirs[0]) <= 21845)
|
||||
Reference in New Issue
Block a user