A test case is composed of 2 tests:
- a test for the IDE
- a test for validating a solution, often called validator.
IDE tests are visible to the players whereas validators are hidden.
- Test cases should cover all specifications
The more tests, the better.
- Each validator must* differ from the corresponding test
It's only to ensure that the players don't hardcode the solution. * Sometimes, to cover edge cases, there is no other way than having the same test as validator
- Each validator should check the same case as the corresponding test
They work by pairs.
- The first test case must be a simple one
It's included in the statement.
- It can be useful to give explicit names to test cases to help players quickly understand their purpose