-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtest_visibility.py
68 lines (48 loc) · 2.09 KB
/
test_visibility.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import unittest
from aviation_weather import Visibility
from aviation_weather.exceptions import VisibilityDecodeError
class TestVisibility(unittest.TestCase):
"""Unit tests for aviation_weather.components.visibility.Visibility"""
def _test_valid(self, raw, cavok, less_than, greater_than, distance, unit):
v = Visibility(raw)
self.assertEqual(raw, v.raw)
self.assertEqual(cavok, v.cavok)
self.assertEqual(less_than, v.less_than)
self.assertEqual(greater_than, v.greater_than)
self.assertEqual(distance, v.distance)
self.assertEqual(unit, v.unit)
def test_valid_1_SM(self):
self._test_valid("1SM", None, False, False, 1, "SM")
def test_valid_20_SM(self):
self._test_valid("20SM", None, False, False, 20, "SM")
def test_valid_fraction_SM(self):
self._test_valid("1/2SM", None, False, False, .5, "SM")
def test_valid_less_fraction_SM(self):
self._test_valid("M1/2SM", None, True, False, .5, "SM")
def test_valid_less_mixed_SM(self):
self._test_valid("M1 1/4SM", None, True, False, 1.25, "SM")
def test_valid_greater_SM(self):
self._test_valid("P6SM", None, False, True, 6, "SM")
def test_valid_9999_m(self):
self._test_valid("9999", None, False, False, 9999, "m")
def test_valid_2000_m(self):
self._test_valid("2000", None, False, False, 2000, "m")
def test_valid_cavok(self):
self._test_valid("CAVOK", True, False, False, None, None)
def _test_invalid(self, raw):
with self.assertRaises(VisibilityDecodeError):
Visibility(raw)
def test_invalid_empty(self):
self._test_invalid("")
def test_invalid_no_value(self):
self._test_invalid("SM")
def test_invalid_no_value_lt(self):
self._test_invalid("MSM")
def test_invalid_no_value_gt(self):
self._test_invalid("PSM")
def test_invalid_short(self):
self._test_invalid("120")
def test_invalid_long(self):
self._test_invalid("12345")
def test_invalid_long_SM(self):
self._test_invalid("123456SM")