This is just a short post to link to The Pocket Calculator Kata.
The aim of this kata is to implement (most of) the features of the Casio SL-1100TV 10-digit calculator. Pretty much everything except its "stylish & cool design", in fact.
A full test suite is provided, and all tests are in the same simple format: press these buttons, expect this display output. The examples are in Gherkin syntax, as used by Cucumber, SpecFlow etc, but there's absolutely no requirement to use either of these tools. You could translate the scenarios into NUnit tests if you like, or anything else you enjoy working with.
There's almost no maths in this kata, the problem is almost entirely around modelling the state of the calculator. There are quite a few features altogether, so just pick the ones you're interested in. Be warned: it looks deceptively simple! Don't be afraid to stop and think if you get stuck, there may be an easier route through the features than the first one you try.
The full kata description is on GitHub: https://github.com/patchspace/katas/tree/master/pocket_calculator
If you have any comments or would like to ask any questions about this kata, feel free to email me (Ash) at email@example.com. If you have a solution you'd like to share, I'll happily add a link to it in this blog post.