Created a simple unit test with supporting testing infrastructure.
Extracted unit testing infrastructure into a separate file.
The unit testing framework now reports the location of the failed assertion instead of the location of the failed test.
Added output to show how many tests have failed.
Improved the formatting of values in assertion failure messages.
Added the name of the test to the assertion failure message.
Moved unit tests for the window to a separate file.
You can now run a single file of unit tests (e.g. window.lua) or run all unit tests at once (through main.lua).
Replaced all code testing the window with unit tests.
Added a set_up function to the unit testing framework which gets called just before each test.
You now define unit tests using a table instead of using helper functions.
Cleaned up the code for the unit testing framework a bit.
Replaced all code testing a button with unit tests.
Added support to the unit testing framework for checking if a function gets called, which makes testing event handlers easier.
Replaced all code testing a text box with unit tests.
Changed the names of the assertion functions to be more consistent with each other.
Replaced all tests with unit tests.