Skip to content

SmasSive/rpn-kalkulator-kata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TDD state machine

redgreenrefactor

Baby steps technique

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:

  1. Start
  2. Write a failing test
  3. Write code to make test pass (then goto 2, or if can’t think of more tests, refactor)
  4. 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”.

RPN Calculator Kata

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

About

RPN Calculator Kata done with Kotlin

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages