diff options
Diffstat (limited to 'challenge-242/roger-bell-west/python')
| -rwxr-xr-x | challenge-242/roger-bell-west/python/ch-1.py | 30 | ||||
| -rwxr-xr-x | challenge-242/roger-bell-west/python/ch-2.py | 19 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-242/roger-bell-west/python/ch-1.py b/challenge-242/roger-bell-west/python/ch-1.py new file mode 100755 index 0000000000..a4b970b293 --- /dev/null +++ b/challenge-242/roger-bell-west/python/ch-1.py @@ -0,0 +1,30 @@ +#! /usr/bin/python3 + +def unique(a): + ss = set() + b = [] + for i in a: + if i not in ss: + b.append(i) + ss.add(i) + return b + +def halfmissing(a, bh): + return unique(i for i in a if i not in bh) + +def missingmembers(a, b): + ah = set(a) + bh = set(b) + return [halfmissing(a, bh), halfmissing(b, ah)] + +import unittest + +class TestMissingmembers(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(missingmembers([1, 2, 3], [2, 4, 6]), [[1, 3], [4, 6]], 'example 1') + + def test_ex2(self): + self.assertEqual(missingmembers([1, 2, 3, 3], [1, 1, 2, 2]), [[3], []], 'example 2') + +unittest.main() diff --git a/challenge-242/roger-bell-west/python/ch-2.py b/challenge-242/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..c01ccf6c74 --- /dev/null +++ b/challenge-242/roger-bell-west/python/ch-2.py @@ -0,0 +1,19 @@ +#! /usr/bin/python3 + +def flipmatrix(a): + b = [] + for row in a: + b.append(list(reversed([1 - i for i in row]))) + return b + +import unittest + +class TestFlipmatrix(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(flipmatrix([[1, 1, 0], [1, 0, 1], [0, 0, 0]]), [[1, 0, 0], [0, 1, 0], [1, 1, 1]], 'example 1') + + def test_ex2(self): + self.assertEqual(flipmatrix([[1, 1, 0, 0], [1, 0, 0, 1], [0, 1, 1, 1], [1, 0, 1, 0]]), [[1, 1, 0, 0], [0, 1, 1, 0], [0, 0, 0, 1], [1, 0, 1, 0]], 'example 2') + +unittest.main() |
