Предизвикателства > Runewords Calculator > Решения > Решението на Велислава Спасова

Резултати
1 точки от тестове
0 точки от учител

1 точки общо

6 успешни теста
1 неуспешни теста
Код

 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)

Дискусия
История
Това решение има само една версия.