示例#1
0
class RoverTestCase(unittest.TestCase):
    # initial creation of the roverobject

    def setUp(self):  # creating same planet and rover for each test case
        self.planet = Planet(10, 10)
        self.rover = Rover(0, 0, 'N', self.planet)

    def tearDown(self):
        print('\n \n')

    def test_will_rover_move(self):
        givecommands = ['f', 'r', 'f',
                        'f']  # these are the commands that should be executed
        self.assertTrue(Rover.readcommands(self.rover, givecommands,
                                           self.planet),
                        msg=Rover.giveroverlocation(self.rover))

    def test_will_rover_refuse_unknown_commands(self):
        givecommands = ['s', 'n', 'a', 'r']
        self.assertTrue(Rover.readcommands(self.rover, givecommands,
                                           self.planet),
                        msg=Rover.giveroverlocation(self.rover))

    def test_will_rover_refuse_numeric_commands(self):
        givecommands = [3, 2, 5.2, 'r']
        self.assertTrue(Rover.readcommands(self.rover, givecommands,
                                           self.planet),
                        msg=Rover.giveroverlocation(self.rover))

    def test_will_rover_stop_at_obstacle(self):
        self.planet.addobstacle(1, 2)
        givecommands = ['f', 'f', 'r', 'f', 'f', 'b']
        self.assertTrue(Rover.readcommands(self.rover, givecommands,
                                           self.planet),
                        msg=Rover.giveroverlocation(self.rover))

    def test_will_false_obstacle_input_be_ignored(self):
        self.planet.addobstacle('sboj', 'adbiun')
        givecommands = ['f', 'f', 'r', 'f', 'f', 'b']
        self.assertTrue(Rover.readcommands(self.rover, givecommands,
                                           self.planet),
                        msg=Rover.giveroverlocation(self.rover))

    def test_does_wrapping_work(self):
        givecommands = ('l', 'f')
        self.assertTrue(Rover.readcommands(self.rover, givecommands,
                                           self.planet),
                        msg=Rover.giveroverlocation(self.rover))