コード例 #1
0
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
コード例 #2
0
 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())
コード例 #3
0
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()
コード例 #4
0
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()
コード例 #5
0
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()