diff options
Diffstat (limited to 'challenge-273/bruce-gray/python')
| -rwxr-xr-x | challenge-273/bruce-gray/python/ch-1.py | 22 | ||||
| -rwxr-xr-x | challenge-273/bruce-gray/python/ch-2.py | 19 |
2 files changed, 41 insertions, 0 deletions
diff --git a/challenge-273/bruce-gray/python/ch-1.py b/challenge-273/bruce-gray/python/ch-1.py new file mode 100755 index 0000000000..804a3359a6 --- /dev/null +++ b/challenge-273/bruce-gray/python/ch-1.py @@ -0,0 +1,22 @@ +#!python +import math +def lround(n): + return math.floor(n + 0.5) + +def task1(str, char): + return lround(100 * str.count(char) / len(str)) + + +import unittest +class TestTask1(unittest.TestCase): + def t(self, str, char, expected): + self.assertEqual(task1(str, char), expected, f"task1('{str}', '{char}')") + + def test_1(self): self.t('perl' , 'e', 25) + def test_2(self): self.t('java' , 'a', 50) + def test_3(self): self.t('python' , 'm', 0) + def test_4(self): self.t('ada' , 'a', 67) + def test_5(self): self.t('ballerina' , 'l', 22) + def test_6(self): self.t('analitik' , 'k', 13) + +unittest.main() diff --git a/challenge-273/bruce-gray/python/ch-2.py b/challenge-273/bruce-gray/python/ch-2.py new file mode 100755 index 0000000000..d1ce92088f --- /dev/null +++ b/challenge-273/bruce-gray/python/ch-2.py @@ -0,0 +1,19 @@ +#!python +import re + +def task2(str): + p = re.compile('^[^b]*b[^a]*$') + return bool(p.match(str)) + + +import unittest +class TestTask1(unittest.TestCase): + def t(self, str, expected): + self.assertEqual(task2(str), expected, f"task2('{str}')") + + def test_1(self): self.t('aabb' , True ) + def test_2(self): self.t('abab' , False) + def test_3(self): self.t('aaa' , False) + def test_4(self): self.t('bbb' , True ) + +unittest.main() |
