1class RunewordsCalculator:
2 def __init__(self, recepties):
3 self.runes=[]
4 self.recepties = recepties
5 self.returned=[]
6
7 def __next__(self):
8 for rec in self.recepties:
9 if rec in self.returned:
10 continue
11
12 recipe = self.recepties[rec]
13 recipe_index = 0
14 used_runes= []
15
16 for i,rune in enumerate(self.runes):
17 if rune == recipe[recipe_index]:
18 used_runes.append(i)
19 recipe_index+=1
20
21 if recipe_index == len(recipe):
22 self.returned.append(rec)
23
24 for index in reversed(used_runes):
25 self.runes.pop(index)
26
27 return rec
28
29 if len(self.returned) != len(self.recepties):
30 return None
31
32 raise StopIteration
33
34 def __iter__(self):
35 return self
36
37 def add_runes(self, runes):
38 for rune in runes:
39 self.runes.append(rune)
40
.....F.
======================================================================
FAIL: test_returns_runewords_in_runeword_order (test.TestRunewordsCalculator.test_returns_runewords_in_runeword_order)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 55, in test_returns_runewords_in_runeword_order
self.assertEqual(next(iterator), "First")
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: None != 'First'
----------------------------------------------------------------------
Ran 7 tests in 0.001s
FAILED (failures=1)