def test_turn(self): self.char.position = Position(0, 0, 1) for x in range(4, -3, -1): self.char.turn_left() self.assertEqual(self.char.position.orientation, x % 4) self.char.position = Position(0, 0, -1) for x in range(10): self.char.turn_right() self.assertEqual(self.char.position.orientation, x % 4)
def test_advance(self): self.char.position = Position(5, 5, 0) self.char.move_forward() self.validate_position(self.char.position, Position(5, 6, 0)) self.char.turn_right() self.char.move_forward() self.validate_position(self.char.position, Position(6, 6, 1)) self.char.turn_right() self.char.move_forward() self.validate_position(self.char.position, Position(6, 5, 2)) self.char.turn_right() self.char.move_forward() self.validate_position(self.char.position, Position(5, 5, 3))
def test_turn(self): pos = Position(0, 0, 1) for x in range(4, -3, -1): pos.turn_left() self.assertEqual(pos.orientation, x % 4) pos = Position(0, 0, -1) for x in range(10): pos.turn_right() self.assertEqual(pos.orientation, x % 4)
class Character: def __init__(self, name, pos_x=0, pos_y=0, orientation=0): self.position = Position(pos_x, pos_y, orientation) self.name = name def turn_left(self): self.position.turn_left() def turn_right(self): self.position.turn_right() def move_forward(self): self.position.move_forward()
def set_position(self, x, y, orientation): self.position = Position(x, y, orientation)
def __init__(self, name, pos_x=0, pos_y=0, orientation=0): self.position = Position(pos_x, pos_y, orientation) self.name = name
def test_constructor_other_values(self): other_character = Character("name", 3, 5, 3) self.validate_position(other_character.position, Position(3, 5, 3))
def test_constructor_default(self): self.assertEqual(self.char.name, "name") self.validate_position(self.char.position, Position(0, 0, 0))
def setUp(self): self.obj = Position(1, 2, 2)
def test_advance(self): pos = Position(5, 5, 0) pos.move_forward() self.validate_position(pos, Position(5, 6, 0)) pos.turn_right() pos.move_forward() self.validate_position(pos, Position(6, 6, 1)) pos.turn_right() pos.move_forward() self.validate_position(pos, Position(6, 5, 2)) pos.turn_right() pos.move_forward() self.validate_position(pos, Position(5, 5, 3))
def test_constructor_orientation_out_of_bounds(self): for x in range(-4, 9): self.assertEqual(Position(0, 0, x).orientation, x % 4)