The Baby Step TDD came up as a solution for the problem of TDD when sometimes you write a test which forces you to implement too many changes in one step to make the test pass.
As known, the main cycle in the TDD is described as follow:
- Start
- Write a failing test
- Write code to make test pass (then goto 2, or if can’t think of more tests, refactor)
- Stop
With the Baby Step we had to do the same cycle but with an extra constraint that it must be done in 2 minutes. So at the end of each cycle the test must be “green” (test passes).
Now, the most painful condition was that if you finish on red you have to roll back your changes to the last “green” state.
We had to write Java code printing diamond, as described in Seb Rose’s post, and use git for committing the “green” code at the end of each cycle or rolling back “git reset –hard HEAD” when it is “red”.
A RPN calculator program computes expressions written in RPN (Reverse Polish Notation). A RPN expression (or a postfix expression) is one of the following:
- a number X, in which case the value of the expression is that of X;
- a sequence of the form E1 E2 O, where E1 and E2 are postfix expressions and O is an arithmetic operation; in this case, the value of the expression is that of E1 O E2
The following are RPN expressions:
- 20 5 / => (20/5) = 4
- 4 2 + 3 - => (4+2)-3 = 3
- 3 5 8 * 7 + * => 3*((5*8)+7) = 141
- 7 2 - 3 4 = 5 3 4
Suggested scenarios
- Given a RPN Calculator when a digit is sent it should display the same digit
- Given a RPN Calculator when some digits are sent it should display the number formed by those digits
- Given a RPN Calculator when an operation (* + / -) is sent after two numbers it should display the result of that operation