Skip to content

Commit 86ae1cf

Browse files
committed
About generators
1 parent 7b37912 commit 86ae1cf

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

python3/koans/about_generators.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def test_generating_values_on_the_fly(self):
1919
for bacon in bacon_generator:
2020
result.append(bacon)
2121

22-
self.assertEqual(__, result)
22+
self.assertEqual(['crunchy bacon', 'veggie bacon', 'danish bacon'], result)
2323

2424
def test_generators_are_different_to_list_comprehensions(self):
2525
num_list = [x*2 for x in range(1,3)]
@@ -28,9 +28,9 @@ def test_generators_are_different_to_list_comprehensions(self):
2828
self.assertEqual(2, num_list[0])
2929

3030
# A generator has to be iterated through.
31-
with self.assertRaises(___): num = num_generator[0]
31+
with self.assertRaises(TypeError): num = num_generator[0]
3232

33-
self.assertEqual(__, list(num_generator)[0])
33+
self.assertEqual(2, list(num_generator)[0])
3434

3535
# Both list comprehensions and generators can be iterated though. However, a generator
3636
# function is only called on the first iteration. The values are generated on the fly
@@ -44,8 +44,8 @@ def test_generator_expressions_are_a_one_shot_deal(self):
4444
attempt1 = list(dynamite)
4545
attempt2 = list(dynamite)
4646

47-
self.assertEqual(__, attempt1)
48-
self.assertEqual(__, attempt2)
47+
self.assertEqual(["Boom!", "Boom!", "Boom!"], attempt1)
48+
self.assertEqual([], attempt2)
4949

5050
# ------------------------------------------------------------------
5151

@@ -59,12 +59,12 @@ def test_generator_method_will_yield_values_during_iteration(self):
5959
result = list()
6060
for item in self.simple_generator_method():
6161
result.append(item)
62-
self.assertEqual(__, result)
62+
self.assertEqual(["peanut", "butter", "and", "jelly"], result)
6363

6464
def test_generators_can_be_manually_iterated_and_closed(self):
6565
result = self.simple_generator_method()
66-
self.assertEqual(__, next(result))
67-
self.assertEqual(__, next(result))
66+
self.assertEqual("peanut", next(result))
67+
self.assertEqual("butter", next(result))
6868
result.close()
6969

7070
# ------------------------------------------------------------------
@@ -75,7 +75,7 @@ def square_me(self, seq):
7575

7676
def test_generator_method_with_parameter(self):
7777
result = self.square_me(range(2,5))
78-
self.assertEqual(__, list(result))
78+
self.assertEqual([4, 9, 16], list(result))
7979

8080
# ------------------------------------------------------------------
8181

@@ -88,7 +88,7 @@ def sum_it(self, seq):
8888

8989
def test_generator_keeps_track_of_local_variables(self):
9090
result = self.sum_it(range(2,5))
91-
self.assertEqual(__, list(result))
91+
self.assertEqual([2, 5, 9], list(result))
9292

9393
# ------------------------------------------------------------------
9494

@@ -106,15 +106,15 @@ def test_generators_can_act_as_coroutines(self):
106106
# section of http://www.python.org/dev/peps/pep-0342/
107107
next(generator)
108108

109-
self.assertEqual(__, generator.send(1 + 2))
109+
self.assertEqual(3, generator.send(1 + 2))
110110

111111
def test_before_sending_a_value_to_a_generator_next_must_be_called(self):
112112
generator = self.coroutine()
113113

114114
try:
115115
generator.send(1 + 2)
116116
except TypeError as ex:
117-
self.assertRegex(ex.args[0], __)
117+
self.assertRegex(ex.args[0], "can't send non-None value to a just-started generator")
118118

119119
# ------------------------------------------------------------------
120120

@@ -132,11 +132,11 @@ def test_generators_can_see_if_they_have_been_called_with_a_value(self):
132132

133133
generator2 = self.yield_tester()
134134
next(generator2)
135-
self.assertEqual(__, next(generator2))
135+
self.assertEqual("no value", next(generator2))
136136

137137
def test_send_none_is_equivalent_to_next(self):
138138
generator = self.yield_tester()
139139

140140
next(generator)
141141
# 'next(generator)' is exactly equivalent to 'generator.send(None)'
142-
self.assertEqual(__, generator.send(None))
142+
self.assertEqual("no value", generator.send(None))

0 commit comments

Comments
 (0)