def test_command_from_docs(self): cmnd = CommandCenter(Robot(), Terrain()) print '' cmnd.command('PLACE 0,0,NORTH MOVE REPORT') self.assertEqual(cmnd.robot.position, Position(0, 1, Facing.NORTH)) cmnd.command('PLACE 0,0,NORTH LEFT REPORT') self.assertEqual(cmnd.robot.position, Position(0, 0, Facing.WEST)) cmnd.command('PLACE 1,2,EAST MOVE MOVE LEFT MOVE REPORT') self.assertEqual(cmnd.robot.position, Position(3, 3, Facing.NORTH))
def test_deploy_invalid_position(self): robot2 = Robot() with self.assertRaises(ValueError): robot2.deploy(Terrain(2, 2), Position(3, 1))
def test_deploy(self): robot2 = Robot() self.assertEqual(robot2.active, False) robot2.deploy(Terrain(2, 2), Position(1, 1)) self.assertEqual(robot2.active, True)
def test_move_by_x(self): self.robot.rotate(Direction.RIGHT).move() self.assertEqual(self.robot.position, Position(1, 0, Facing.EAST))
def test_move_by_y(self): self.robot.move() self.assertEqual(self.robot.position, Position(0, 1, Facing.NORTH))
def test_eq_ne(self): self.assertEqual(Position(10, 10, Facing.NORTH), Position(10, 10, Facing.NORTH)) self.assertNotEqual(Position(10, 10, Facing.NORTH), Position(10, 10, Facing.SOUTH))
def test_constructor_invalid_facing(self): with self.assertRaises(ValueError): position = Position(-10, 10, 'North')
def setUp(self): self.robot = Robot() self.terrain = Terrain() self.position = Position() self.robot.deploy(self.terrain, self.position)