class TestQuadTileGrid(unittest.TestCase): def setUp(self): self.qtg = QuadTileGrid(max_extent=(0.0, 1.0, 2.0, 3.0)) def test_children(self): self.assertEqual(sorted(self.qtg.children(TileCoord(1, 2, 3))), [TileCoord(2, 4, 6), TileCoord(2, 4, 7), TileCoord(2, 5, 6), TileCoord(2, 5, 7)]) def test_children_root(self): self.assertEqual(sorted(self.qtg.children(TileCoord(0, 0, 0))), [TileCoord(1, 0, 0), TileCoord(1, 0, 1), TileCoord(1, 1, 0), TileCoord(1, 1, 1)]) def test_extent_z0(self): self.assertEqual(self.qtg.extent(TileCoord(0, 0, 0)), (0.0, 1.0, 2.0, 3.0)) def test_extent_z1(self): self.assertEqual(self.qtg.extent(TileCoord(1, 0, 0)), (0.0, 2.0, 1.0, 3.0)) self.assertEqual(self.qtg.extent(TileCoord(1, 0, 1)), (0.0, 1.0, 1.0, 2.0)) self.assertEqual(self.qtg.extent(TileCoord(1, 1, 0)), (1.0, 2.0, 2.0, 3.0)) self.assertEqual(self.qtg.extent(TileCoord(1, 1, 1)), (1.0, 1.0, 2.0, 2.0)) def test_extent_z2(self): self.assertEqual(self.qtg.extent(TileCoord(2, 0, 0)), (0.0, 2.5, 0.5, 3.0)) self.assertEqual(self.qtg.extent(TileCoord(2, 1, 1)), (0.5, 2.0, 1.0, 2.5)) self.assertEqual(self.qtg.extent(TileCoord(2, 2, 2)), (1.0, 1.5, 1.5, 2.0)) self.assertEqual(self.qtg.extent(TileCoord(2, 3, 3)), (1.5, 1.0, 2.0, 1.5)) def test_parent(self): self.assertEqual(self.qtg.parent(TileCoord(5, 11, 21)), TileCoord(4, 5, 10)) def test_parent_root(self): self.assertEqual(self.qtg.parent(TileCoord(0, 0, 0)), None) def test_roots(self): self.assertEqual(list(self.qtg.roots()), [TileCoord(0, 0, 0)]) def test_tilecoord(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) minx, miny, maxx, maxy = self.qtg.extent(tilecoord) self.assertEqual(self.qtg.tilecoord(z, minx, miny), tilecoord) def test_zs(self): self.assertEqual(list(islice(self.qtg.zs(), 50)), range(50))
class TestQuadTileGrid(unittest.TestCase): def setUp(self): self.qtg = QuadTileGrid(max_extent=(0.0, 1.0, 2.0, 3.0)) def test_children(self): self.assertEqual(sorted(self.qtg.children(TileCoord(1, 2, 3))), [ TileCoord(2, 4, 6), TileCoord(2, 4, 7), TileCoord(2, 5, 6), TileCoord(2, 5, 7) ]) def test_children_root(self): self.assertEqual(sorted(self.qtg.children(TileCoord(0, 0, 0))), [ TileCoord(1, 0, 0), TileCoord(1, 0, 1), TileCoord(1, 1, 0), TileCoord(1, 1, 1) ]) def test_extent_z0(self): self.assertEqual(self.qtg.extent(TileCoord(0, 0, 0)), (0.0, 1.0, 2.0, 3.0)) def test_extent_z1(self): self.assertEqual(self.qtg.extent(TileCoord(1, 0, 0)), (0.0, 2.0, 1.0, 3.0)) self.assertEqual(self.qtg.extent(TileCoord(1, 0, 1)), (0.0, 1.0, 1.0, 2.0)) self.assertEqual(self.qtg.extent(TileCoord(1, 1, 0)), (1.0, 2.0, 2.0, 3.0)) self.assertEqual(self.qtg.extent(TileCoord(1, 1, 1)), (1.0, 1.0, 2.0, 2.0)) def test_extent_z2(self): self.assertEqual(self.qtg.extent(TileCoord(2, 0, 0)), (0.0, 2.5, 0.5, 3.0)) self.assertEqual(self.qtg.extent(TileCoord(2, 1, 1)), (0.5, 2.0, 1.0, 2.5)) self.assertEqual(self.qtg.extent(TileCoord(2, 2, 2)), (1.0, 1.5, 1.5, 2.0)) self.assertEqual(self.qtg.extent(TileCoord(2, 3, 3)), (1.5, 1.0, 2.0, 1.5)) def test_parent(self): self.assertEqual(self.qtg.parent(TileCoord(5, 11, 21)), TileCoord(4, 5, 10)) def test_parent_root(self): self.assertEqual(self.qtg.parent(TileCoord(0, 0, 0)), None) def test_roots(self): self.assertEqual(list(self.qtg.roots()), [TileCoord(0, 0, 0)]) def test_tilecoord(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) minx, miny, maxx, maxy = self.qtg.extent(tilecoord) self.assertEqual(self.qtg.tilecoord(z, minx, miny), tilecoord) def test_zs(self): self.assertEqual(list(islice(self.qtg.zs(), 50)), range(50))