added more tests, catch all cases and optimize logic to test fewest points possible
added exhaustive option to verify all cases caught by optimized logic