class TestFreeQuadTileStructureEquivalence(unittest.TestCase): def setUp(self): self.fts = FreeTileStructure([8, 4, 2, 1], tile_size=0.125) self.qts = QuadTileStructure(max_zoom=3) def test_children(self): tc = TileCoord(2, 2, 3) self.assertEqual(sorted(self.fts.children(tc)), sorted(self.qts.children(tc))) def test_children_root(self): tc = TileCoord(0, 0, 0) self.assertEqual(sorted(self.fts.children(tc)), sorted(self.qts.children(tc))) def test_extent(self): for z in xrange(0, 4): for x in xrange(0, 1 << z): for y in xrange(0, 1 << z): tilecoord = TileCoord(z, x, y) self.assertEqual(self.fts.extent(tilecoord), self.qts.extent(tilecoord)) def test_parent(self): tc = TileCoord(3, 3, 5) self.assertEqual(self.fts.parent(tc), self.qts.parent(tc)) def test_roots(self): self.assertEqual(list(self.fts.roots()), list(self.qts.roots()))
class TestFreeTileStructure(unittest.TestCase): def setUp(self): self.resolutions = (1000, 999, 500, 250, 125, 123, 111, 100, 50, 25, 10) self.fts = FreeTileStructure(self.resolutions) def test_factors(self): for i, resolution in enumerate(self.resolutions): for child_z in self.fts.child_zs[i]: self.assertEquals(self.resolutions[i] % self.resolutions[child_z], 0) def test_root_parents(self): for root_z in set(root.z for root in self.fts.roots()): self.assertEquals(self.fts.parent(TileCoord(root_z, 0, 0)), None) def test_root_zero(self): self.assertEquals(self.fts.parent(TileCoord(0, 0, 0)), None)