1memory = {}
2def memnick(*args):
3 if not args:
4 def decorator(func):
5 def memorize(*args, **kwargs):
6 sentence = func(*args, **kwargs)
7 for_who = sentence.split(",")[0].lower()
8 memory.setdefault(for_who, set()).add((func.__name__.replace("_", " "), sentence))
9 return sentence
10 memorize.__name__ = func.__name__
11 return memorize
12 return decorator
13 result = []
14 for arg in args:
15 name = arg.__name__
16 for speaker, sentence in memory.get(name, []):
17 result.append(f"С гласа на {speaker.title()}: {sentence}")
18 return result
..F.F
======================================================================
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:
'С гласа на Лазар: Божана, може би ще те любя.'
'С гласа на Почекаин: Божана, ще те любя.'
- ['С гласа на Лазар: Божана, може би ще те любя.',
? ^ ^^^ --------
+ ['С гласа на Почекаин: Божана, ще те любя.',
? ^^^^^ ^^
+ 'С гласа на Лазар: Божана, може би ще те любя.',
'С гласа на Митака: Божана, на този етап не съм сигурен дали искам да те '
'любя.',
- 'С гласа на Почекаин: Божана, ще те любя.',
'С гласа на Бай Венци: Емил, айде да играем шах!']
======================================================================
FAIL: test_memnick_splits_properly (test.TestMemnick.test_memnick_splits_properly)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 89, in test_memnick_splits_properly
self.assertEqual(
~~~~~~~~~~~~~~~~^
["С гласа на Емил: Бай Венци, кажи ми за рисунката."],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
solution.memnick(бай_венци),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С гласа на Емил: Бай Венци, кажи ми за рисунката.'] != []
First list contains 1 additional elements.
First extra element 0:
'С гласа на Емил: Бай Венци, кажи ми за рисунката.'
- ['С гласа на Емил: Бай Венци, кажи ми за рисунката.']
+ []
----------------------------------------------------------------------
Ran 5 tests in 0.003s
FAILED (failures=2)
Коста Илев
15.03.2026 23:15Благодаря за обратната връзка
|
Виктор Бечев
15.03.2026 21:19Първият не минава защото не си запазил подредбата на извикване (използвайки `set` я губиш).
Вторият - защото не пазиш имената от повече от една дума консистентно:
```
memory = {}
def memnick(*args):
if not args:
def decorator(func):
def memorize(*args, **kwargs):
sentence = func(*args, **kwargs)
for_who = sentence.split(",")[0].lower()
memory.setdefault(for_who, set()).add((func.__name__.replace("_", " "), sentence))
return sentence
memorize.__name__ = func.__name__
return memorize
return decorator
result = []
for arg in args:
name = arg.__name__
print(name) # бай_венци
print(memory) # {'бай венци': {('емил', 'Бай Венци, кажи ми за рисунката.')}}
for speaker, sentence in memory.get(name, []):
result.append(f"С гласа на {speaker.title()}: {sentence}")
return result
@memnick()
def емил():
return "Бай Венци, кажи ми за рисунката."
емил()
@memnick()
def бай_венци():
return "Емил, айде да играем шах!"
print(memnick(бай_венци)) # []
```
|
Коста Илев
15.03.2026 15:25Извинете може ли да ви попитам защо тестовете не минават, че гледам логовете ама не мога де се ориентирам защо не ги харесва
|
| f | 1 | memory = {} | f | 1 | memory = {} |
| 2 | def memnick(*args): | 2 | def memnick(*args): | ||
| 3 | if not args: | 3 | if not args: | ||
| 4 | def decorator(func): | 4 | def decorator(func): | ||
| 5 | def memorize(*args, **kwargs): | 5 | def memorize(*args, **kwargs): | ||
| 6 | sentence = func(*args, **kwargs) | 6 | sentence = func(*args, **kwargs) | ||
| 7 | for_who = sentence.split(",")[0].lower() | 7 | for_who = sentence.split(",")[0].lower() | ||
| n | 8 | memory.setdefault(for_who, list()).append((func.__name__.replace("_", " "), sentence)) | n | 8 | memory.setdefault(for_who, set()).add((func.__name__.replace("_", " "), sentence)) |
| 9 | return sentence | 9 | return sentence | ||
| 10 | memorize.__name__ = func.__name__ | 10 | memorize.__name__ = func.__name__ | ||
| 11 | return memorize | 11 | return memorize | ||
| 12 | return decorator | 12 | return decorator | ||
| 13 | result = [] | 13 | result = [] | ||
| 14 | for arg in args: | 14 | for arg in args: | ||
| 15 | name = arg.__name__ | 15 | name = arg.__name__ | ||
| 16 | for speaker, sentence in memory.get(name, []): | 16 | for speaker, sentence in memory.get(name, []): | ||
| 17 | result.append(f"С гласа на {speaker.title()}: {sentence}") | 17 | result.append(f"С гласа на {speaker.title()}: {sentence}") | ||
| 18 | return result | 18 | return result | ||
| t | 19 | t |
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
15.03.2026 14:02