def test_dragon_fractal(self): sequence = [ 'up', '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', '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', 'up', 'left', 'down', 'left', 'down', 'right', 'down', 'left', 'up', 'left', 'down', 'left', 'up', 'left', 'up', 'right', 'down', 'right', 'up', 'right' ] dragon = solution.dragon_fractal() for direction in sequence: self.assertEqual(direction, next(dragon))
LINE_LENGTH = 1 DELAY_MS = 0 REPEAT_TIMES = 16 def str_to_heading(str_): if str_ == 'up': return 90 elif str_ == 'left': return 180 elif str_ == 'right': return 0 elif str_ == 'down': return 270 else: raise Exception('Unknown heading {}'.format(str_)) turtle.hideturtle() turtle.speed(0) turtle.delay(DELAY_MS) dragon_iterator = iter(dragon_fractal()) for _ in range(2 ** REPEAT_TIMES): step_direction = next(dragon_iterator) turtle.setheading(str_to_heading(step_direction)) turtle.forward(LINE_LENGTH) turtle.done()
def test_dragon_fractal(self): sequence = ['up', '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', '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', 'up', 'left', 'down', 'left', 'down', 'right', 'down', 'left', 'up', 'left', 'down', 'left', 'up', 'left', 'up', 'right', 'down', 'right', 'up', 'right'] dragon = solution.dragon_fractal() for direction in sequence: self.assertEqual(direction, next(dragon))