use the function's name for ReadAndWrite if one hasn't been provided
separate out the program generation and finding the failing test cases