Wow! So much thoughtfulness put into test-cases
I am on my 3rd problem in the Home station - Most Wanted Letter (finding the letter with the highest frequency). I wrote the algorithm on paper last week, but I got stuck because I did not have enough knowledge about dictionaries in Python to implement the logic I thought of. Now, I have studied dictionaries and got the solution working today.
When I ran the local tests, one of the asserts "All letter only once" failed, which made me to look into the logic I have implemented. After I fixed the issue, all the local tests worked. Then I submitted the code for checking and one of the test-cases again failed - this surprised me. Anyway, after a bit of debugging, I found the issue and got all the test-cases to pass.
But the reason for writing this post is two-fold:
1.To appreciate the amount of thoughtfulness that has gone into creating these test-cases.
It has been almost 15 years since I held a job as a programmer. During the days I used to do programming, I used to do test-first design and focused quite a bit on finding boundary test-cases. I am so pleased to find that even for simple problems, CheckIO offers such a comprehensive array of tests. So beautiful - thank you much Alex and rest of CheckIO team.
Also the ability to paste any random value to check the program is amazing. The output highlighting that is being done to highlight the occurence of characters in this problem is so awesome. Again Kudos to the team. I can't express my gratitude enough - all this for free! I can't believe! You guys have given me a lot of motivation to start paying for the subscription.
2. To understand the logic by which test-cases are organized
When I saw the Check results, they were organized into 4 categories - Examples, Basics, Texts and Edges. Being the kind of person I am, I wanted to look into each testcase and figure out what it is testing that is unique/different from the other testcases. But it is hard to understand what boundary condition is tested just looking at the examples. I don't know whether it is too much to ask to add comments to show what is being tested in each testcase - it would greatly benefit newbies to learn the ropes and I consider myself a newbie in Python.