- Коректно
- 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