TestCases+main(getInput) +Printer

Added lots O test cases and get input and (good) Printer, so no
hardcoded file
Merge remote-tracking branch 'origin/nigel'