We need a bag of cats.
I didn't have to implement one, but I did put together a test. I think it does a pretty reasonable job of describing what a bag of cats should do - lets see if I'm right.
Your job is to provide an implementation of BagOfCats
that passes the tests.
It doesn't matter what the code for BagOfCats looks like, as long as it passes the tests. In fact please write intentionally hideous code.
It is not permissible to make changes to any of the other classes.
Bonus points are available if you can introduce a subtle bug that is not picked up by the test.
It's pretty easy to introduce some unexpected behaviour, you could just add :-
if (some obscure condition) {
do something weird
}
Somewhere in the code. But that wouldn't be subtle would it?
If you do design a subtle bug add an additional test case called andHereIsASbutleBug
that describes.