def test_out_of_bounds(self): lat, lon = destination(-100.0, -186.0, 60.0, 100000.0) assert round(lat, 7) == 80.4166734 assert round(lon, 7) == -181.3373112 lat, lon = destination(-100.0, -186.0, 60.0, 200000.0) assert round(lat, 7) == 80.7657146 assert round(lon, 7) == -176.2908896
def test_closeby(self): lat, lon = destination(44.0337065, -79.4908184, -0.00071533, 137.0099) assert round(lat, 7) == 44.0349396 assert round(lon, 7) == -79.4908184 lat, lon = destination(-37.95103, 144.42487, 306.86816, 54972.271) assert round(lat, 7) == -37.6528177 assert round(lon, 7) == 143.9264977
def test_antipodal(self): lat, lon = destination(90.0, 0.0, 180.0, 20003931.4586) assert round(lat, 7) == -90.0 assert round(lon, 7) == 0.0 lat, lon = destination(0.0, 0.0, 89.0, 19902751.0326) assert round(lat, 7) == 0.0106671 assert round(lon, 7) == 178.789547 lat, lon = destination(0.0, 0.0, 89.7, 19950277.9698) assert round(lat, 7) == 0.0009494 assert round(lon, 7) == 179.2163987
def test_negative(self): lat, lon = destination(1.0, 1.0, 0.0, 1000) assert round(lat, 7) == 1.0090437 assert round(lon, 7) == 1.0 lat, lon = destination(1.0, 1.0, 0.0, -1000) assert round(lat, 7) == 0.9909563 assert round(lon, 7) == 1.0 lat, lon = destination(1.0, 1.0, 90.0, 1000) assert round(lat, 7) == 1.0 assert round(lon, 7) == 1.0089845 lat, lon = destination(1.0, 1.0, 90.0, -1000) assert round(lat, 7) == 1.0 assert round(lon, 7) == 0.9910155
def displace(self, lat, lon, bearing=0.0, distance=0.0): distance = (self.max_radius + 10.0) * distance return destination(lat, lon, bearing, distance)