def test_forgotten_end_fill(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#ff0000' pensize=1 create_line 100 0 100 100 fill='#ff0000' pensize=1 """ # EXEC t = MockTurtle() t.color('red', 'blue') t.begin_fill() for _ in range(2): t.fd(100) t.right(90) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_scale(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 create_line 100 0 100 150 fill='black' pensize=1 """ # EXEC t = MockTurtle(canvas=Canvas()) t.screen.xscale = 100.0 t.screen.yscale = 50 t.fd(1) t.right(90) t.fd(3) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_forgotten_end_fill(patched_turtle): expected_report = """\ create_line 0 0 100 0 fill='#ff0000' pensize=1 create_line 100 0 100 100 fill='#ff0000' pensize=1 """ t = MockTurtle() t.color('red', 'blue') t.begin_fill() for _ in range(2): t.fd(100) t.right(90) report = t.report assert report == expected_report.splitlines()
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_scale(patched_turtle): expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 create_line 100 0 100 150 fill='black' pensize=1 """ t = MockTurtle(canvas=Canvas()) t.screen.xscale = 100.0 t.screen.yscale = 50 t.fd(1) t.right(90) t.fd(3) report = t.report assert report == expected_report.splitlines()
def test_right(patched_turtle): expected_report = """\ create_line 0 0 0 100 fill='black' pensize=1 """ t = MockTurtle() t.right(90) t.fd(100) report = t.report assert report == expected_report.splitlines()
def test_right(self): # SETUP expected_report = """\ create_line 0 0 0 100 fill='black' pensize=1 """ # EXEC t = MockTurtle() t.right(90) t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_undo_pen_change(patched_turtle): expected_report = """\ create_line 0 0 50 0 fill='black' pensize=1 """ t = MockTurtle() t.forward(50) t.right(90) t.forward(20) t.pensize(5) t.undo() t.undo() report = t.report assert report == expected_report.splitlines()
def test_forgotten_end_fill_with_stamp(patched_turtle): expected_report = """\ create_polygon 0 0 -9 -5 -7 0 -9 5 0 0 fill='#000000' outline='' create_line 0 0 -9 -5 fill='#000000' pensize=1 create_line -9 -5 -7 0 fill='#000000' pensize=1 create_line -7 0 -9 5 fill='#000000' pensize=1 create_line -9 5 0 0 fill='#000000' pensize=1 create_line 0 0 100 0 fill='#ff0000' pensize=1 create_line 100 0 100 100 fill='#ff0000' pensize=1 """ t = MockTurtle() t.stamp() t.color('red', 'blue') t.begin_fill() for _ in range(2): t.fd(100) t.right(90) 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()