aboutsummaryrefslogtreecommitdiff
path: root/challenge-112/roger-bell-west/python
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2021-05-10 11:55:25 +0100
committerRoger Bell_West <roger@firedrake.org>2021-05-10 11:55:25 +0100
commit1304dad6c048c415507ecd8484dc4bc8791457e8 (patch)
treeb986c32967c5fcd0d1d56a00671d8e6beec13d22 /challenge-112/roger-bell-west/python
parent7a73f040a98fe7423753192e94bac15cb465ff28 (diff)
downloadperlweeklychallenge-club-1304dad6c048c415507ecd8484dc4bc8791457e8.tar.gz
perlweeklychallenge-club-1304dad6c048c415507ecd8484dc4bc8791457e8.tar.bz2
perlweeklychallenge-club-1304dad6c048c415507ecd8484dc4bc8791457e8.zip
Solutions for challenge #112
Diffstat (limited to 'challenge-112/roger-bell-west/python')
-rwxr-xr-xchallenge-112/roger-bell-west/python/ch-1.py31
-rwxr-xr-xchallenge-112/roger-bell-west/python/ch-2.py26
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-112/roger-bell-west/python/ch-1.py b/challenge-112/roger-bell-west/python/ch-1.py
new file mode 100755
index 0000000000..cf1ecbd798
--- /dev/null
+++ b/challenge-112/roger-bell-west/python/ch-1.py
@@ -0,0 +1,31 @@
+#! /usr/bin/python3
+
+import unittest
+
+def cp(i):
+ p=[x for x in i.split('/') if x != '' and x != '.']
+ d=True
+ while d:
+ d=False
+ for pi in range(1,len(p)):
+ if p[pi] == '..':
+ p=p[0:pi-2]+p[pi+1:-1]
+ d=True
+ break
+ return '/'+'/'.join(p)
+
+class TestCp(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(cp('/a/'),'/a','example 1')
+
+ def test_ex2(self):
+ self.assertEqual(cp('/a/b//c/'),'/a/b/c','example 2')
+
+ def test_ex3(self):
+ self.assertEqual(cp('/a/b/c/../..'),'/a','example 3')
+
+ def test_ex4(self):
+ self.assertEqual(cp('/a/./b'),'/a/b','example 4')
+
+unittest.main()
diff --git a/challenge-112/roger-bell-west/python/ch-2.py b/challenge-112/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..77dcdbca19
--- /dev/null
+++ b/challenge-112/roger-bell-west/python/ch-2.py
@@ -0,0 +1,26 @@
+#! /usr/bin/python3
+
+import unittest
+
+def cs(i):
+ a=0
+ b=1
+ c=0
+ for x in range(i):
+ c=a+b
+ a=b
+ b=c
+ return c
+
+class TestCs(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(cs(3),3,'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(cs(4),5,'example 2')
+
+ def test_ex3(self):
+ self.assertEqual(cs(20),10946,'example 3')
+
+unittest.main()