def test_from_tile(self): """Test coordinate creation from tile""" p = Point.from_tile(*make_tile(8800, 5574, 14, 0, 0, 256)) p_pos = Point(49.752879934150215, 13.359375, 0.0) p2 = Point.from_tile(*make_tile(8801, 5575, 14, 0, 0, 256)) p_half = Point.from_tile(*make_tile(8800, 5574, 14, 1, 1, 2)) # Check creation for att in ['latitude', 'longitude']: with self.subTest("assumed location: {}".format(att)): self.assertAlmostEqual(getattr(p, att), getattr(p_pos, att)) with self.subTest("fractional tiles: y-axis addition"): self.assertEqual( Point.from_tile(*make_tile(8800, 5574, 14, 0, 32, 32)), Point.from_tile(*make_tile(x=8800, y=5575, z=14))) with self.subTest("fractional tiles: x-axis addition"): self.assertAlmostEqual( Point.from_tile(*make_tile(8800, 5574, 14, 32, 0, 32)), Point.from_tile(*make_tile(x=8801, y=5574, z=14))) with self.subTest("fractional tiles: addition on both axes"): self.assertEqual( Point.from_tile(*make_tile(8800, 5574, 14, 32, 32, 32)), p2) with self.subTest("y increases -> latitude decreases"): self.assertGreater(p.latitude, p_half.latitude) with self.subTest("x increases -> latitude increases"): self.assertLess(p.longitude, p_half.longitude)
def test_from_tile(self): """Test coordinate creation from tile""" p = Point.from_tile(*make_tile(8800, 5574, 14, 0, 0, 256)) p_pos = Point(49.752879934150215, 13.359375, 0.0) p2 = Point.from_tile(*make_tile(8801, 5575, 14, 0, 0, 256)) p_half = Point.from_tile(*make_tile(8800, 5574, 14, 1, 1, 2)) # Check creation for att in ['latitude', 'longitude']: with self.subTest("assumed location: {}".format(att)): self.assertAlmostEqual(getattr(p, att), getattr(p_pos, att)) with self.subTest("fractional tiles: y-axis addition"): self.assertEqual(Point.from_tile(*make_tile(8800, 5574, 14, 0, 32, 32)), Point.from_tile(*make_tile(x=8800, y=5575, z=14))) with self.subTest("fractional tiles: x-axis addition"): self.assertAlmostEqual(Point.from_tile(*make_tile(8800, 5574, 14, 32, 0, 32)), Point.from_tile(*make_tile(x=8801, y=5574, z=14))) with self.subTest("fractional tiles: addition on both axes"): self.assertEqual(Point.from_tile(*make_tile(8800, 5574, 14, 32, 32, 32)), p2) with self.subTest("y increases -> latitude decreases"): self.assertGreater(p.latitude, p_half.latitude) with self.subTest("x increases -> latitude increases"): self.assertLess(p.longitude, p_half.longitude)
def test_to_tile(self): t = make_tile(8800, 5574, 14)[0] point_in_t = Point(49.75, 13.36) with self.subTest("from tile and back"): self.assertEqual(Point.from_tile(t).to_tile(None, t.z), t) with self.subTest("random point"): self.assertEqual(point_in_t.to_tile(None, 14), t) with self.subTest("increase in latitude: decrease in y value"): self.assertLess(Point(50., 13.36).to_tile(None, 14).y, t.y) with self.subTest("increase in longitude: increase in x value"): self.assertGreater(Point(49.75, 14.).to_tile(None, 14).x, t.x)