summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2020-09-27 23:30:41 +0300
committerYuval Adam <_@yuv.al>2020-09-27 23:31:38 +0300
commitc7c47b112bcc96d5d1076fd92993b384937b6b09 (patch)
treea8142077d04a2278407c5c2bc9216e144a06d65f
parentb120c61343b2f738b7d19fde8c92fbcc377f9441 (diff)
Implement deg_to_cardinal()
-rw-r--r--iss/tests/test_utils.py18
-rw-r--r--iss/utils.py22
2 files changed, 40 insertions, 0 deletions
diff --git a/iss/tests/test_utils.py b/iss/tests/test_utils.py
new file mode 100644
index 0000000..4c67322
--- /dev/null
+++ b/iss/tests/test_utils.py
@@ -0,0 +1,18 @@
+from ..utils import deg_to_cardinal
+
+
+def test_deg_to_cardinal():
+ cases = [
+ (0, "N"),
+ (360, "N"),
+ (90, "E"),
+ (91.1, "E"),
+ (78, "ENE"),
+ (182, "S"),
+ (255, "WSW"),
+ (324.99999, "NW"),
+ (345, "NNW"),
+ (350, "N"),
+ ]
+ for deg, cardinal in cases:
+ assert deg_to_cardinal(deg) == cardinal
diff --git a/iss/utils.py b/iss/utils.py
index f1a75c0..0bf9d04 100644
--- a/iss/utils.py
+++ b/iss/utils.py
@@ -1,3 +1,25 @@
def chunks(l, n):
for i in range(0, len(l), n):
yield l[i : i + n]
+
+
+def deg_to_cardinal(deg):
+ cardinals = [
+ "N",
+ "NNE",
+ "NE",
+ "ENE",
+ "E",
+ "ESE",
+ "SE",
+ "SSE",
+ "S",
+ "SSW",
+ "SW",
+ "WSW",
+ "W",
+ "WNW",
+ "NW",
+ "NNW",
+ ]
+ return cardinals[round((deg % 360) / 22.5) % 16]