The question has been asked many times. I suggest you to search them and see codechef’s PoV, and then give your counter-arguments based on that. The discussion would be more fruitful then, dear.
Expressing my views on it-
Whats the scenario?
Other sites like Hackerrank, Hackerearth etc. do provide test cases after the contest ends. And its does help many people debug their code. This time, the problem setter of ROBOTG was lenient enough to share the test case of the problem, and I am quite sure that this will help MANY people who are stuck on the problem to debug the code. Sharing test cases does help beginners figure out where there code is lacking, and is not necessarily bad.
What does Codechef have to say on this? Why does it stick to its stand?
Codechef has expressed its opinion that debugging your own code should be done using test cases formulated by you. The concept of “stress-debugging” (debugging using your own test cases) [pardon if I got the term wrong] is encouraged by the team.
Codechef has a point when it says that this encourages people to come up with their own test cases and hence sharpens their debugging skills. What happens when test cases are immediately furnished, is that people don’t even try to debug their code and simply see the test cases. This HAS a negative effect of performance as the same people develop the habit of “being spoonfed corner cases” and are unable to debug their code (or find corner cases) in duration of contest. Also, many people feel that not giving test cases is what that makes codechef ‘unique’ and out-of-the-box, when compared to similar websites.
(If you can give a counter-argument on basis of it, then you have more chances of getting codechef around your PoV.)
How successful is Codechef in this?
From my personal views, I will say quite successful. Yes, it did gave me SLEEPLESS DAYS, there had been times when I was AWAKE TILL 4 AM IN MORING, debugging my code to pass that final corner case, figuring out why my code fails on only 1 out of 25 cases, and what that case is.
Yes, I would have saved a LOT of time had the test cases been immediately given. But, after some time , and some practice on test case finding from other sites, I did develop the ability to find test cases where the code fails.
The Problem with this Approach
The problem is that this is not at all beginner-friendly. Beginners are already struggling pass the easy questions, they have little concept of corner cases and hence get frustrated and demotivated on seeing their code fail continuously on easy questions. Had the test cases been provided, they’d have had a much more enjoyable time coding.
(STRICTLY MY OWN POV.)
The Solution I Saw
What I saw was, that its better to come to codechef after having a little experience at sites like Hackerrank etc. I used to practice finding corner cases where my code failed on hackerrank, and in case I was unable to, when I utterly gave up, I would look at the test case and spot the error Then I would analyse a few things (why it didn’t occur, which part of code failed, how to identify &etc.)
This practice helped me develop enough test-case finding skills to debug my own code at codechef, and since then, my problems due to non-availability of test cases mitigated by a big deal.
What might convince codechef to give out test cases?
Something which wouldn’t deter their aims, and simultaneously satisfy our interests. If some feature/system/method can be suggested, such that people debug their code first and look at test cases ONLY when absolutely necessary, I think codechef would be more ready to give out test cases.