11#!/usr/bin/env python
22# encoding: utf-8
33
4- from decimal import Decimal
5-
64import unittest
75from geolocation .google_maps import GoogleMaps
86from geolocation .distance_matrix import const
@@ -65,7 +63,7 @@ def test_lat(self):
6563
6664 my_location = location .first ()
6765
68- self .assertEqual (40.7060081 , my_location .lat )
66+ self .assertAlmostEqual (40.7060081 , my_location .lat , 2 )
6967
7068 def test_lng (self ):
7169 address = "New York City Wall Street 19"
@@ -74,7 +72,7 @@ def test_lng(self):
7472
7573 my_location = location .first ()
7674
77- self .assertEqual (- 74.0134436 , my_location .lng )
75+ self .assertAlmostEqual (- 74.0134436 , my_location .lng , 2 )
7876
7977 def test_formatted_address (self ):
8078 address = "New York City Wall Street 124"
@@ -136,6 +134,10 @@ def test_administrative_area_resets(self):
136134class DistanceMatrixTest (unittest .TestCase ):
137135 def setUp (self ):
138136 self .google_maps = GoogleMaps (api_key = TEST_API_KEY )
137+ self .duration_regex = r'([0-9]*)d ([0-9]*)h ([0-9]*)m ([0-9]*)s'
138+ self .delta_km = 25
139+ self .delta_m = 25000
140+ self .delta_miles = 25
139141
140142 def test_distance_matrix (self ):
141143 origins = ['rybnik' , 'oslo' ]
@@ -146,17 +148,17 @@ def test_distance_matrix(self):
146148 for item in items :
147149 if item .origin == 'Rybnik, Poland' :
148150 self .assertEqual (item .destination , 'Zagreb, Croatia' )
149- self .assertEqual ( item .distance .kilometers , Decimal ( 713 ) )
150- self .assertEqual ( item .distance .meters , 713000 )
151- self .assertEqual ( item .distance .miles , 443.0368 )
152- self .assertEqual (str (item .duration ), '0d 7h 7m 47s' )
151+ self .assertAlmostEqual ( float ( 709 ), item .distance .kilometers , delta = self . delta_km )
152+ self .assertAlmostEqual ( float ( 713000 ), item .distance .meters , delta = self . delta_m )
153+ self .assertAlmostEqual ( float ( 443.0368 ), item .distance .miles , delta = self . delta_miles )
154+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
153155
154156 if item .origin == 'Oslo, Norway' :
155157 self .assertEqual (item .destination , 'Zagreb, Croatia' )
156- self .assertEqual ( item .distance .kilometers , 2063 )
157- self .assertEqual ( item .distance .meters , 2063000 )
158- self .assertEqual ( item .distance .miles , 1281.8863 )
159- self .assertEqual (str (item .duration ), '0d 21h 18m 29s' )
158+ self .assertAlmostEqual ( float ( 2063 ), item .distance .kilometers , delta = self . delta_km )
159+ self .assertAlmostEqual ( float ( 2063000 ), item .distance .meters , delta = self . delta_m )
160+ self .assertAlmostEqual ( float ( 1281.8863 ), item .distance .miles , delta = self . delta_miles )
161+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
160162
161163 def test_distance_matrix_bicycling (self ):
162164 origins = ['rybnik' ]
@@ -166,10 +168,10 @@ def test_distance_matrix_bicycling(self):
166168
167169 self .assertEqual (item .origin , 'Rybnik, Poland' )
168170 self .assertEqual (item .destination , 'Oslo, Norway' )
169- self .assertEqual ( item .distance .kilometers , 1596 )
170- self .assertEqual ( item .distance .meters , 1596000 )
171- self .assertEqual ( item .distance .miles , 991.7065 )
172- self .assertEqual (str (item .duration ), '3d 11h 7m 25s' )
171+ self .assertAlmostEqual ( float ( 1596 ), item .distance .kilometers , delta = self . delta_km )
172+ self .assertAlmostEqual ( float ( 1596000 ), item .distance .meters , delta = self . delta_m )
173+ self .assertAlmostEqual ( float ( 991.7065 ), item .distance .miles , delta = self . delta_miles )
174+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
173175
174176 def test_distance_matrix_walking (self ):
175177 origins = ['rybnik' ]
@@ -179,10 +181,10 @@ def test_distance_matrix_walking(self):
179181
180182 self .assertEqual (item .origin , 'Rybnik, Poland' )
181183 self .assertEqual (item .destination , 'Oslo, Norway' )
182- self .assertEqual ( item .distance .kilometers , 1380 )
183- self .assertEqual ( item .distance .meters , 1380000 )
184- self .assertEqual ( item .distance .miles , 857.4906 )
185- self .assertEqual (str (item .duration ), '10d 9h 32m 16s' )
184+ self .assertAlmostEqual ( float ( 1380 ), item .distance .kilometers , delta = self . delta_km )
185+ self .assertAlmostEqual ( float ( 1380000 ), item .distance .meters , delta = self . delta_m )
186+ self .assertAlmostEqual ( float ( 857.4906 ), item .distance .miles , delta = self . delta_miles )
187+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
186188
187189 def test_distance_matrix_avoid_tolls (self ):
188190 origins = ['rybnik' ]
@@ -192,10 +194,10 @@ def test_distance_matrix_avoid_tolls(self):
192194
193195 self .assertEqual (item .origin , 'Rybnik, Poland' )
194196 self .assertEqual (item .destination , 'Oslo, Norway' )
195- self .assertEqual ( item .distance .kilometers , 1542 )
196- self .assertEqual ( item .distance .meters , 1542000 )
197- self .assertEqual ( item .distance .miles , 958.1525 )
198- self .assertEqual (str (item .duration ), '0d 16h 30m 40s' )
197+ self .assertAlmostEqual ( float ( 1542 ), item .distance .kilometers , delta = self . delta_km )
198+ self .assertAlmostEqual ( float ( 1542000 ), item .distance .meters , delta = self . delta_m )
199+ self .assertAlmostEqual ( float ( 958.1525 ), item .distance .miles , delta = self . delta_miles )
200+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
199201
200202 def test_distance_matrix_avoid_highways (self ):
201203 origins = ['rybnik' ]
@@ -205,10 +207,10 @@ def test_distance_matrix_avoid_highways(self):
205207
206208 self .assertEqual (item .origin , 'Rybnik, Poland' )
207209 self .assertEqual (item .destination , 'Oslo, Norway' )
208- self .assertEqual ( item .distance .kilometers , 1491 )
209- self .assertEqual ( item .distance .meters , 1491000 )
210- self .assertEqual ( item .distance .miles , 926.4627 )
211- self .assertEqual (str (item .duration ), '1d 1h 36m 6s' )
210+ self .assertAlmostEqual ( float ( 1542 ), item .distance .kilometers , delta = self . delta_km )
211+ self .assertAlmostEqual ( float ( 1542000 ), item .distance .meters , delta = self . delta_m )
212+ self .assertAlmostEqual ( float ( 958.1525 ), item .distance .miles , delta = self . delta_miles )
213+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
212214
213215 def test_distance_matrix_avoid_ferries (self ):
214216 origins = ['rybnik' ]
@@ -218,10 +220,10 @@ def test_distance_matrix_avoid_ferries(self):
218220
219221 self .assertEqual (item .origin , 'Rybnik, Poland' )
220222 self .assertEqual (item .destination , 'Oslo, Norway' )
221- self .assertEqual ( item .distance .kilometers , 1851 )
222- self .assertEqual ( item .distance .meters , 1851000 )
223- self .assertEqual ( item .distance .miles , 1150.1559 )
224- self .assertEqual (str (item .duration ), '0d 17h 35m 44s' )
223+ self .assertAlmostEqual ( float ( 1851 ), item .distance .kilometers , delta = self . delta_km )
224+ self .assertAlmostEqual ( float ( 1851000 ), item .distance .meters , delta = self . delta_m )
225+ self .assertAlmostEqual ( float ( 1150.1559 ), item .distance .miles , delta = self . delta_miles )
226+ self .assertRegexpMatches (str (item .duration ), self . duration_regex )
225227
226228
227229if __name__ == '__main__' :
0 commit comments