- Коректно
- 3 успешни тест(а)
- 0 неуспешни тест(а)
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
Срокът за предаване на решения е отминал
Както на всеки от нас се е случвало, да скучае на лекция, винаги опираме до момента, в който драскането по листа, който предварително е предназначен за смислени записки, е единственият ни вариант.
За ваше най-голямо щастие ние ще ви дадем най-ефективния начин за убиване на горепосоченото време, чертаейки драконов фрактал. Какво е драконов фрактал? Ако последвате няколкото стъпки по-долу, ще можете да си направите свой собствен драконов фрактал като този
Стъпки:
Ето и следващата итерация:
И идва време за условието на задача. Тъй като вече знаете как се прави драконов фрактал и вероятно може да си представите какво усилие се изисква за всяка следваща итерация, вие искате да си напише клас, който да ви помага да направите красивия драконов фрактал.
Трябва да напишете генератор с име dragon_fractal
. При всяко извикване на next()
върху генератора ние трябва да получаваме посока, в която да нарисуваме следващата линийка.
Посоката трябва да бъде left
, right
, up
или down
като първата стъпка винаги връща up
.
Ето как трябва да изглеждат първите няколко итерации.
>>> dragon = dragon_fractal()
>>> next(dragon)
'up'
>>> next(dragon)
'left'
>>> next(dragon)
'down'
>>> next(dragon)
'left'
>>> next(dragon)
'down'
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.003s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
EE. ====================================================================== ERROR: test_128th_result (test.DragonFractal) ---------------------------------------------------------------------- Traceback (most recent call last): File "lib/language/python/runner.py", line 57, in thread raise TimeoutError TimeoutError ====================================================================== ERROR: test_first_fifty_step (test.DragonFractal) ---------------------------------------------------------------------- Traceback (most recent call last): File "lib/language/python/runner.py", line 57, in thread raise TimeoutError TimeoutError ---------------------------------------------------------------------- Ran 3 tests in 4.063s FAILED (errors=2)
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.003s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.004s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.003s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.003s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
FFF ====================================================================== FAIL: test_128th_result (test.DragonFractal) ---------------------------------------------------------------------- Traceback (most recent call last): File "lib/language/python/runner.py", line 60, in thread raise it.exc_info[1] File "lib/language/python/runner.py", line 48, in run self.result = func(*args, **kwargs) File "/tmp/d20130513-14014-16wwwr9/test.py", line 37, in test_128th_result self.assertEqual(result[-1], 'left') AssertionError: 'down' != 'left' - down + left ====================================================================== FAIL: test_first_fifty_step (test.DragonFractal) ---------------------------------------------------------------------- Traceback (most recent call last): File "lib/language/python/runner.py", line 60, in thread raise it.exc_info[1] File "lib/language/python/runner.py", line 48, in run self.result = func(*args, **kwargs) File "/tmp/d20130513-14014-16wwwr9/test.py", line 31, in test_first_fifty_step self.assertEqual(result, expected) AssertionError: Lists differ: ['left', 'down', 'left', 'down... != ['up', 'left', 'down', 'left',... First differing element 0: left up + ['up', - ['left', ? ^ + 'left', ? ^ 'down', 'left', 'down', 'right', 'down', 'left', 'down', 'right', 'up', 'right', 'down', 'right', 'down', 'left', 'down', 'right', 'up', 'right', 'up', 'left', 'up', 'right', 'down', 'right', 'up', 'right', 'down', 'right', 'down', 'left', 'down', 'right', 'up', 'right', 'up', 'left', 'up', 'right', 'up', 'left', 'down', 'left', 'up', 'left', 'up', 'right', 'down', - 'right', ? ^ + 'right'] ? ^ - 'up'] ====================================================================== FAIL: test_first_ten_steps (test.DragonFractal) ---------------------------------------------------------------------- Traceback (most recent call last): File "lib/language/python/runner.py", line 60, in thread raise it.exc_info[1] File "lib/language/python/runner.py", line 48, in run self.result = func(*args, **kwargs) File "/tmp/d20130513-14014-16wwwr9/test.py", line 18, in test_first_ten_steps self.assertEqual(result, expected) AssertionError: Lists differ: ['left', 'down', 'left', 'down... != ['up', 'left', 'down', 'left',... First differing element 0: left up + ['up', - ['left', ? ^ + 'left', ? ^ 'down', 'left', 'down', 'right', 'down', 'left', 'down', - 'right', ? ^ + 'right'] ? ^ - 'up'] ---------------------------------------------------------------------- Ran 3 tests in 0.011s FAILED (failures=3)
... ---------------------------------------------------------------------- Ran 3 tests in 0.003s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK
... ---------------------------------------------------------------------- Ran 3 tests in 0.002s OK