def test_clearstamp(patched_turtle): expected_report = """\ create_polygon 0 0 -9 -5 -7 0 -9 5 fill='black' outline='' create_line 0 0 -9 -5 fill='black' pensize=1 create_line -9 -5 -7 0 fill='black' pensize=1 create_line -7 0 -9 5 fill='black' pensize=1 create_line -9 5 0 0 fill='black' pensize=1 """ t = MockTurtle() stamp1 = t.stamp() t.up() t.forward(100) stamp2 = t.stamp() t.clearstamp(stamp2) report = t.report assert report == expected_report.splitlines() assert stamp1 != stamp2
def display_diff(self, actual: LivePainter, expected: LivePainter): if not self.is_displayed: return if not MockTurtle.is_patched(): return t = MockTurtle() w = t.getscreen().window_width() h = t.getscreen().window_height() ox, oy = w / 2, h / 2 actual_width, actual_height = actual.get_size() expected_width, expected_height = expected.get_size() diff_width, diff_height = self.diff.get_size() text_space = (h - actual_height - diff_height - expected_height) text_height = max(20, text_space // 3) font = ('Arial', text_height // 2, 'normal') t.penup() t.goto(-ox, oy) t.right(90) t.forward(text_height) t.write('Actual', font=font) actual.display(t.pos()) t.forward(actual_height) t.forward(text_height) t.write('Diff ({} pixels)'.format(self.diff_count), font=font) self.diff.display(t.pos()) t.forward(diff_height) t.forward(text_height) t.write('Expected', font=font) expected.display(t.pos())
def test_mode(patched_turtle): expected_report = """\ create_line 0 0 0 -100 fill='black' pensize=1 """ t = MockTurtle() t.getscreen().mode('logo') t.forward(100) report = t.report assert report == expected_report.splitlines()
def test_undo(patched_turtle): expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 """ t = MockTurtle() t.forward(100) t.right(90) t.forward(100) t.undo() report = t.report assert report == expected_report.splitlines()
def test_stamp_while_filling(patched_turtle): expected_report = """\ create_polygon 0 0 40 0 40 40 0 40 fill='#008000' outline='' create_line 0 0 40 0 fill='black' pensize=4 create_line 40 0 40 40 fill='black' pensize=4 create_line 40 40 0 40 fill='black' pensize=4 create_polygon 40 0 45 -9 40 -7 35 -9 fill='#008000' outline='' create_line 40 0 45 -9 fill='black' pensize=1 create_line 45 -9 40 -7 fill='black' pensize=1 create_line 40 -7 35 -9 fill='black' pensize=1 create_line 35 -9 40 0 fill='black' pensize=1 """ t = MockTurtle() t.pensize(4) t.fillcolor('green') t.begin_fill() t.forward(40) t.right(90) t.stamp() t.forward(40) t.right(90) t.forward(40) t.end_fill() report = t.report assert report == expected_report.splitlines()