This application was for the use of participants in the Clean Code Cup 2013 contest. The goal of the contest was the implementation of the intelligence of a Robot to make it able to find a Cat in a dark room, and to bring it to the point where Robot had begun its journey with the minimum number of steps. Each participant had to implement a DLL that provides a fixed interface (a signature of exported functions). These DLLs were loaded by the testing application at run time. Both native DLLs and .NET assemblies were supported. The application called DLL functions and showed animations of the Robot’s movements.

The maps were loaded from plain text files where a wall, Robot and Cat were denoted by specific characters. The application supported some basic operation on a map (flip, rotate, swap Robot and Cat) to generate 16 different modifications of a given map. During the test, the application verified whether the Robot broke a wall, exceeded its movements limit, failed with exception and so on. Some checks for cheaty Robots were provided as well, like a check for attempts of edition of the map by a function from a participant’s DLL.
Two automated testing modes were provided:

  1. Run Robot on all possible modifications of a given map (16-fold test).
  2. Run the 16-fold test for all maps of a given directory.

The results of automated tests were saved to text files and compared between participants of the contest.

Languages: C# (application and test robots), C++ (test robots)

Application screenshot

A screenshot of the application

Test summary file

A sample of autogenerated file with a 16-fold test summary

______________________________

“In a crystal we have the clear evidence of the existence of a formative life-principle, and though we cannot understand the life of a crystal, it is none the less a living being.”

Nikola Tesla