Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5ffb674

Browse files
committed
test invalid lat/lon for file
1 parent f1a72c4 commit 5ffb674

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

srtm/data.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,11 @@ def __init__(self, file_name, data):
222222
def get_elevation(self, latitude, longitude):
223223
start_latitude, start_longitude = self.latitude, self.longitude
224224

225+
if not (self.latitude <= latitude < self.latitude + 1):
226+
raise Exception('Invalid latitude %s for file %s' % (latitude, self.file_name))
227+
if not (self.longitude <= longitude < self.longitude + 1):
228+
raise Exception('Invalid longitude %s for file %s' % (longitude, self.file_name))
229+
225230
points = self.square_side ** 2
226231

227232
row = int(mod_math.floor((start_latitude + 1 - latitude) * float(self.square_side - 1)))
@@ -231,6 +236,7 @@ def get_elevation(self, latitude, longitude):
231236

232237
def get_elevation_from_row_and_column(self, row, column):
233238
i = row * (self.square_side) + column
239+
assert i < len(self.data) - 1
234240

235241
mod_logging.debug('{0}, {1} -> {2}'.format(row, column, i))
236242

test.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,19 @@ def test_files_equality(self):
6666
geo_elevation_data.get_file(47.0, -13.0))
6767
self.assertEquals(geo_elevation_data.get_file(47.99, -13.99),
6868
geo_elevation_data.get_file(47.0, -13.0))
69+
70+
def test_invalit_coordinates_for_file(self):
71+
geo_elevation_data = mod_srtm.get_data()
72+
geo_file = geo_elevation_data.get_file(47.0, 13.99)
73+
74+
try:
75+
self.assertFalse(geo_file.get_elevation(1, 1))
76+
except Exception as e:
77+
message = str(e)
78+
self.assertEquals('Invalid latitude 1 for file N47E013.hgt', message)
79+
80+
try:
81+
self.assertFalse(geo_file.get_elevation(47, 1))
82+
except Exception as e:
83+
message = str(e)
84+
self.assertEquals('Invalid longitude 1 for file N47E013.hgt', message)

0 commit comments

Comments
 (0)