Skip to content

Commit 676d631

Browse files
committed
create new properties on Direction class: km and mi. This will convert the attribute distance - stored in meters - to one of the desired units
1 parent 6f5b283 commit 676d631

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

routingpy/direction.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ def distance(self) -> int:
114114
"""
115115
return self._distance
116116

117+
@property
118+
def km(self) -> float:
119+
return self.distance / 1000
120+
121+
@property
122+
def mi(self) -> float:
123+
return self.distance * 0.0006213712
124+
117125
@property
118126
def raw(self) -> Optional[dict]:
119127
"""

tests/test_direction.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import unittest
2+
3+
from routingpy.direction import Direction
4+
5+
6+
class DirectionTest(unittest.TestCase):
7+
def test_km(self):
8+
more_than_one = Direction(distance=8577)
9+
exactly_one = Direction(distance=1000)
10+
less_than_one = Direction(distance=123)
11+
12+
self.assertEqual(more_than_one.km, 8.577)
13+
self.assertEqual(exactly_one.km, 1)
14+
self.assertEqual(less_than_one.km, 0.123)
15+
16+
def test_mi(self):
17+
more_than_one = Direction(distance=3200)
18+
exactly_one = Direction(distance=1609.344)
19+
less_than_one = Direction(distance=835)
20+
21+
self.assertAlmostEqual(more_than_one.mi, 1.9883878)
22+
self.assertAlmostEqual(exactly_one.mi, 1)
23+
self.assertAlmostEqual(less_than_one.mi, 0.51884492)

0 commit comments

Comments
 (0)