I'm currently / was programming a program which tests if the given sudoku is a real sudoku. It works. My only problem is that I don't know if it meets all the required criteria. I am testing that every number is 9x in the sudoku and that it is only 1x in every 3x3 field. Adding to that I'm testing that every vertical and horizontal line (when added together) have the same result(45) which includes that the overall result has to be 405. My question is if I need to test for every number to only once in every horizontal and vertical line once or is it not needed anymore?
Counterexample:
453 456 189
126 789 723
789 123 456
231 564 897
564 897 231
897 231 564
312 645 978
645 978 312
978 312 645