diff options
Diffstat (limited to 'challenge-319/sgreen/python')
| -rwxr-xr-x | challenge-319/sgreen/python/ch-1.py | 17 | ||||
| -rwxr-xr-x | challenge-319/sgreen/python/ch-2.py | 21 | ||||
| -rwxr-xr-x | challenge-319/sgreen/python/test.py | 22 |
3 files changed, 60 insertions, 0 deletions
diff --git a/challenge-319/sgreen/python/ch-1.py b/challenge-319/sgreen/python/ch-1.py new file mode 100755 index 0000000000..f76b60e6e5 --- /dev/null +++ b/challenge-319/sgreen/python/ch-1.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import re +import sys + + +def word_count(words: list[str]) -> int: + return sum(1 for word in words if re.search('^[aeiou]', word) or re.search('[aeiou]$', word)) + + +def main(): + result = word_count(sys.argv[1:]) + print(result) + + +if __name__ == '__main__': + main() diff --git a/challenge-319/sgreen/python/ch-2.py b/challenge-319/sgreen/python/ch-2.py new file mode 100755 index 0000000000..8c0127500c --- /dev/null +++ b/challenge-319/sgreen/python/ch-2.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 + +import re +import sys + + +def minimum_common(list1: list[int], list2: list[int]) -> int: + intersection = set(list1) & set(list2) + return min(intersection) if intersection else -1 + + +def main(): + # Convert input into integers + list1 = map(int, re.split(r'\D+', sys.argv[1])) + list2 = map(int, re.split(r'\D+', sys.argv[2])) + result = minimum_common(list1, list2) + print(result) + + +if __name__ == '__main__': + main() diff --git a/challenge-319/sgreen/python/test.py b/challenge-319/sgreen/python/test.py new file mode 100755 index 0000000000..7a15abb379 --- /dev/null +++ b/challenge-319/sgreen/python/test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +import unittest +ch_1 = __import__('ch-1') +ch_2 = __import__('ch-2') + + +class TestClass(unittest.TestCase): + def test_ch_1(self): + self.assertEqual(ch_1.word_count( + ["unicode", "xml", "raku", "perl"]), 2) + self.assertEqual(ch_1.word_count(["the", "weekly", "challenge"]), 2) + self.assertEqual(ch_1.word_count(["perl", "python", "postgres"]), 0) + + def test_ch_2(self): + self.assertEqual(ch_2.minimum_common([1, 2, 3, 4], [3, 4, 5, 6]), 3) + self.assertEqual(ch_2.minimum_common([1, 2, 3], [2, 4]), 2) + self.assertEqual(ch_2.minimum_common([1, 2, 3, 4], [5, 6, 7, 8]), -1) + + +if __name__ == '__main__': + unittest.main() |
