Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit df1d0d3

Browse files
Add chaind addition and find unique string tests
1 parent 7eeb3b9 commit df1d0d3

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

‎src/katas/chain_adding.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Add(int):
2+
def __call__(self, number):
3+
return Add(self + number)

‎src/katas/unique_string_finder.py‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class UniqueStringFinder:
2+
def find_unique(self, list_of_strings: list):
3+
list_of_strings.sort(key=lambda element: element.lower())
4+
sorted_list = [set(element.lower()) for element in list_of_strings]
5+
6+
if sorted_list.count(sorted_list[0]) == 1 and str(sorted_list[0]) != 'set()':
7+
return list_of_strings[0]
8+
else:
9+
return list_of_strings[-1]

‎tests/chain_adding_test.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from src.katas.chain_adding import Add
2+
import unittest
3+
4+
5+
class ChainAddingTest(unittest.TestCase):
6+
7+
def test_it_adds_numbers_together_when_called_in_succession(self):
8+
self.assertEqual(3, Add(1)(2))
9+
self.assertEqual(6, Add(1)(2)(3))
10+
self.assertEqual(10, Add(1)(2)(3)(4))

‎tests/unique_string_finder_test.py‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from src.katas.unique_string_finder import UniqueStringFinder
2+
from pprint import pprint
3+
import unittest
4+
5+
6+
class UniqueStringTest(unittest.TestCase):
7+
8+
def test_it_finds_the_unique_string_from_list_of_strings(self):
9+
finder = UniqueStringFinder()
10+
11+
self.assertEqual(
12+
finder.find_unique(['Aa', 'aaa', 'aaaaa', 'BbBb', 'Aaaa', 'AaAaAa', 'a']),
13+
'BbBb'
14+
)
15+
self.assertEqual(
16+
finder.find_unique(['abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba']),
17+
'foo'
18+
)
19+
self.assertEqual(finder.find_unique([' ', 'a', ' ']), 'a')

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /