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_bgcolor(self): # SETUP expected_report = """\ bgcolor fill='#00ff00' outline='' create_line 0 0 100 0 fill='black' pensize=1""" # EXEC t = MockTurtle() t.fd(100) color1 = t.screen.bgcolor() t.screen.bgcolor('green') color2 = t.screen.bgcolor() report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report) self.assertEqual('white', color1) self.assertEqual('green', color2)
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_write_right(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 create_text 100 0 anchor='se' fill='black' font=('Arial', 8, 'normal') text='Bob' """ # EXEC t = MockTurtle() t.fd(100) t.write('Bob', align='right') report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_write(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 create_text 100 0 anchor='sw' fill='black' font=('Arial', 8, 'normal') text='Bob' """ # EXEC t = MockTurtle() t.fd(100) t.write('Bob') report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_repr(self): # SETUP expected_text = "MockTurtle(100, 0, 10)" # EXEC t = MockTurtle(25, 0, -7) t.left(7) t.fd(75) t.left(10) text = repr(t) # VERIFY self.assertEqual(expected_text, text)
def test_forward(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black'""" # EXEC t = MockTurtle() t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_color(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#ff0080'""" # EXEC t = MockTurtle() t.color(1.0, 0.0, 0.5) t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_offset(self): # SETUP expected_report = """\ create_line 400 300 500 300 fill='black'""" # EXEC t = MockTurtle(canvas=Canvas(800, 600)) t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_color_bad(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#000000' pensize=1""" # EXEC t = MockTurtle() t.color((1.0, 0.0)) # Only two numbers, fails to black. t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_pen_dict(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#0000ff' pensize=1""" # EXEC t = MockTurtle() t.pen(pencolor=(0, 0, 1.0)) t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_color_bad_range(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#000000' pensize=1""" # EXEC t = MockTurtle() t.color(1.0, 0.0, 1.5) # Over 1.0 not allowed, fails to black. t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_color_name(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#0000ff' pensize=1""" # EXEC t = MockTurtle() t.color('blue') t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_color(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='#ff0080' pensize=1""" # EXEC t = MockTurtle() t.color(1.0, 0.0, 0.5) t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_offset(self): # SETUP expected_report = """\ create_line 400 300 500 300 fill='black' pensize=1 """ # EXEC t = MockTurtle(canvas=Canvas(800, 600)) t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_forward(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 """ # EXEC t = MockTurtle() t.fd(100) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_penup(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 create_line 150 0 350 0 fill='#000000' pensize=1 """ # EXEC t = MockTurtle() t.fd(100) t.penup() t.fd(50) t.pendown() t.fd(200) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_penup(self): # SETUP expected_report = """\ create_line 0 0 100 0 fill='black' pensize=1 create_line 150 0 350 0 fill='black' pensize=1 """ # EXEC t = MockTurtle() t.fd(100) t.penup() t.fd(50) t.pendown() t.fd(200) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_offset_with_scale(self): """ The offset is applied BEFORE the scale. """ # SETUP expected_report = """\ create_line 400 300 500 300 fill='black' pensize=1 """ # EXEC t = MockTurtle(canvas=Canvas(800, 600)) t.screen.xscale = 100 t.fd(1) report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)
def test_fill(self): # SETUP expected_report = """\ create_polygon 0 0 100 0 100 100 fill='#0000ff' outline='' 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) t.end_fill() report = t.report # VERIFY self.assertEqual(expected_report.splitlines(), report)