Skip to content

Commit 975b063

Browse files
committed
Completed about_iteration
1 parent 56fbaea commit 975b063

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

python2/koans/about_iteration.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ def test_iterators_are_a_type(self):
1414
for num in it:
1515
fib += num
1616

17-
self.assertEqual(__, fib)
17+
self.assertEqual(15, fib)
1818

1919
def test_iterating_with_next(self):
2020
stages = iter(['alpha', 'beta', 'gamma'])
2121

2222
try:
23-
self.assertEqual(__, next(stages))
23+
self.assertEqual('alpha', next(stages))
2424
next(stages)
25-
self.assertEqual(__, next(stages))
25+
self.assertEqual('gamma', next(stages))
2626
next(stages)
2727
except StopIteration as ex:
2828
err_msg = 'Ran out of iterations'
2929

30-
self.assertMatch(__, err_msg)
30+
self.assertMatch('.* iterations', err_msg)
3131

3232
# ------------------------------------------------------------------
3333

@@ -38,7 +38,7 @@ def test_map_transforms_elements_of_a_list(self):
3838
seq = [1, 2, 3]
3939

4040
mapped_seq = map(self.add_ten, seq)
41-
self.assertEqual(__, mapped_seq)
41+
self.assertEqual([11, 12, 13], mapped_seq)
4242

4343
def test_filter_selects_certain_items_from_a_list(self):
4444
def is_even(item):
@@ -47,7 +47,7 @@ def is_even(item):
4747
seq = [1, 2, 3, 4, 5, 6]
4848

4949
even_numbers = filter(is_even, seq)
50-
self.assertEqual(__, even_numbers)
50+
self.assertEqual([2, 4, 6], even_numbers)
5151

5252
def test_just_return_first_item_found(self):
5353
def is_big_name(item):
@@ -57,12 +57,12 @@ def is_big_name(item):
5757

5858
# NOTE This still iterates through the whole names, so not particularly
5959
# efficient
60-
self.assertEqual([__], filter(is_big_name, names)[:1])
60+
self.assertEqual(["Clarence"], filter(is_big_name, names)[:1])
6161

6262
# Boring but effective
6363
for item in names:
6464
if is_big_name(item):
65-
self.assertEqual(__, item)
65+
self.assertEqual("Clarence", item)
6666
break
6767

6868
# ------------------------------------------------------------------
@@ -75,28 +75,31 @@ def multiply(self, accum, item):
7575

7676
def test_reduce_will_blow_your_mind(self):
7777
result = reduce(self.add, [2, 3, 4])
78-
self.assertEqual(__, result)
78+
self.assertEqual(9, result)
7979

8080
result2 = reduce(self.multiply, [2, 3, 4], 1)
81-
self.assertEqual(__, result2)
81+
self.assertEqual(24, result2)
8282

8383
# Extra Credit:
8484
# Describe in your own words what reduce does.
8585

86+
# Reduce applies the function to each of it's arguments
87+
# and feeds the result into it's call with the next argument.
88+
8689
# ------------------------------------------------------------------
8790

8891
def test_use_pass_for_iterations_with_no_body(self):
8992
for num in range(1, 5):
9093
pass
9194

92-
self.assertEqual(__, num)
95+
self.assertEqual(4, num)
9396

9497
# ------------------------------------------------------------------
9598

9699
def test_all_iteration_methods_work_on_any_sequence_not_just_lists(self):
97100
# Ranges are an iterable sequence
98101
result = map(self.add_ten, range(1, 4))
99-
self.assertEqual(__, list(result))
102+
self.assertEqual([11, 12, 13], list(result))
100103

101104
try:
102105
f = open("example_file.txt")
@@ -105,7 +108,7 @@ def test_all_iteration_methods_work_on_any_sequence_not_just_lists(self):
105108
def make_upcase(line):
106109
return line.strip().upper()
107110
upcase_lines = map(make_upcase, f.readlines())
108-
self.assertEqual(__, list(upcase_lines))
111+
self.assertEqual(['THIS', 'IS', 'A', 'TEST'], list(upcase_lines))
109112
finally:
110113
# Arg, this is ugly.
111114
# We will figure out how to fix this later.

0 commit comments

Comments
 (0)