diff options
Diffstat (limited to 'challenge-287/roger-bell-west/python/ch-2.py')
| -rwxr-xr-x | challenge-287/roger-bell-west/python/ch-2.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-287/roger-bell-west/python/ch-2.py b/challenge-287/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..7197f9b4f3 --- /dev/null +++ b/challenge-287/roger-bell-west/python/ch-2.py @@ -0,0 +1,40 @@ +#! /usr/bin/python3 + +import re + +def validnumber(a): + integer = r"[-+]?[0-9]+"; + float = r"[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)"; + exponential = "(" + integer + "|" + float + ")[Ee]" + integer; + number = "^(" + integer + "|" + float + "|" +exponential + ")$"; + rx = re.compile(number) + if re.match(rx, a): + return True + return False + +import unittest + +class TestValidnumber(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(validnumber("1"), True, 'example 1') + + def test_ex2(self): + self.assertEqual(validnumber("a"), False, 'example 2') + + def test_ex3(self): + self.assertEqual(validnumber("."), False, 'example 3') + + def test_ex4(self): + self.assertEqual(validnumber("1.2e4.2"), False, 'example 4') + + def test_ex5(self): + self.assertEqual(validnumber("-1."), True, 'example 5') + + def test_ex6(self): + self.assertEqual(validnumber("+1E-8"), True, 'example 6') + + def test_ex7(self): + self.assertEqual(validnumber(".44"), True, 'example 7') + +unittest.main() |
