After spending some time developing ReoPath (or RPath), a XPath-like language for RDF, I've recently switched into testing mode. At first, I just wanted to test the code for memory leaks, but then I realized it might useful to prepare a set of test cases I could run through. Eventually, I could run through all of the test cases automatically in order to test for regressions, memory leaks, and other things.
So in the process of testing, I made a table of all of the test expressions I ran. I ended up with 330 test cases. Since they only test features I've implemented already, I expect that number to grow ever higher over time.
I managed to fix numerous bugs, so the process was quite useful. I also discovered that ReoPath as currently implemented contains a Bizarre List Handling Rule of Evil, that can cause some unexpected results. The problem lies in that I used the same style of syntax for two purposes. I'm not sure if I should remove the feature or not. On one hand, I spent quite a bit of time implementing it and fixing bugs in it, yet in the end it seems to be more confusing than it's worth.