Let the predefined cells be locked.
Change default test case to test5.
Rename test1.txt -> invalid01.txt because it has multiple solutions.
Split out CellComparator to its own class.
Split solver impls into their own classes.
Split each test instance into its own test method.
Change return type of generateCandidates to collection.