Предизвикателства > Мемник > Решения > Решението на Кристиян Тодоров

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

1 точки общо

3 успешни теста
2 неуспешни теста
Код
Скрий всички коментари

 1memory = []
 2
 3def memnick(*func):
 4    if len(func) == 0:
 5
 6        def decorator(f):
 7            def wrapper(*args, **kwargs):
 8                result = f(*args, **kwargs)
 9                memory.append((f.__name__, result))
10                return result
11            wrapper.__name__=f.__name__
12            return wrapper
13
14        return decorator
15
16    else:
17        res = []
18        targets = {f.__name__.replace("_", " ") for f in func}
19        for speaker, phrase in memory:
20            address = phrase.split(",", 1)[0].lower()
21            if address in targets:
22                speaker_name = " ".join(w.capitalize() for w in speaker.split("_"))
23                res.append(f"С гласа на {speaker_name}: {phrase}")
24        return res

.FF..
======================================================================
FAIL: test_memnick_does_not_memorize_repetitions (test.TestMemnick.test_memnick_does_not_memorize_repetitions)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 76, in test_memnick_does_not_memorize_repetitions
self.assertEqual(
~~~~~~~~~~~~~~~~^
["С гласа на Бай Венци: Емил, айде да играем шах!"],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
solution.memnick(емил),
^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С г[40 chars]шах!'] != ['С г[40 chars]шах!', 'С гласа на Бай Венци: Емил, айде да иг[210 chars]ах!']

Second list contains 5 additional elements.
First extra element 1:
'С гласа на Бай Венци: Емил, айде да играем шах!'

- ['С гласа на Бай Венци: Емил, айде да играем шах!']
? ^

+ ['С гласа на Бай Венци: Емил, айде да играем шах!',
? ^

+ 'С гласа на Бай Венци: Емил, айде да играем шах!',
+ 'С гласа на Бай Венци: Емил, айде да играем шах!',
+ 'С гласа на Бай Венци: Емил, айде да играем шах!',
+ 'С гласа на Бай Венци: Емил, айде да играем шах!',
+ 'С гласа на Бай Венци: Емил, айде да играем шах!']

======================================================================
FAIL: test_memnick_memorizes (test.TestMemnick.test_memnick_memorizes)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 51, in test_memnick_memorizes
self.assertEqual(
~~~~~~~~~~~~~~~~^
[
^
...<5 lines>...
solution.memnick(божана, емил),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С гласа на Лазар: Божана, може би ще те любя.', 'С г[166 chars]ах!'] != ['С гласа на Бай Венци: Емил, айде да играем шах!', 'С[166 chars]бя.']

First differing element 0:
'С гласа на Лазар: Божана, може би ще те любя.'
'С гласа на Бай Венци: Емил, айде да играем шах!'

+ ['С гласа на Бай Венци: Емил, айде да играем шах!',
- ['С гласа на Лазар: Божана, може би ще те любя.',
? ^

+ 'С гласа на Лазар: Божана, може би ще те любя.',
? ^

'С гласа на Митака: Божана, на този етап не съм сигурен дали искам да те '
'любя.',
- 'С гласа на Почекаин: Божана, ще те любя.',
? ^

+ 'С гласа на Почекаин: Божана, ще те любя.']
? ^

- 'С гласа на Бай Венци: Емил, айде да играем шах!']

----------------------------------------------------------------------
Ran 5 tests in 0.003s

FAILED (failures=2)

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