/rover

Primary LanguagePython

Rover

The project is written as a single script to make it easy to run

Run

Animation

To see the rovers move across screen/grid

$ python run.py

You should see the rovers move across the grid and change orientation as they do.

Unit Test

The unit test will run the various functional components

$ python test.py

Note On Design

I subscribed to the principles of Domain-Driven Design, Single Responsibility, and OOP; all business logic is contained in specific models.

I’ve written the functions to satisfy a single requirement where possible. This makes it easier to write unit tests.

I always start with the lowest dependencies 1st for a more robust testing suit. This allows me to cover more scenarios across the layers of dependencies. In this example I call the entire stack even at the higher level of abstraction, normally I would make use of mocks, stubs, or patches but didn’t feel it was needed for this purpose (this method is useful when testing 3rd Party APIs).