While the implementation evolves towards addressing the problem, SOLID design principles are pursued as possible. Thus, we use such kata to train on good daily programming habit.
It is interesting to see how could one be able to work towards the same solution in different languages. Here, I am keen to see how it really differs among Scala, Kotlin, Java and Erlang. Of course, one cannot test everthing. Here, I focus on Pattern Matching.
A uTDD pattern is:
Break it, fix it, commit, refactor if necessary, and so on.