This code kata is based on the KataNumbersInWords kata – convert numbers into words:
- 3: “three”
- 159: “one hundred and fifty-nine”
- 2400: “two thousand and four hundred”
- …
Katas are a good way to learn/practice TDD and/or learn more about a particular technology – in my particular case I decided to to this kata to improve my javascript skills.
The purpose of the exercise is to write the code incrementally, one step at a time – starting with the simplest case scenario (1 digit numbers) and then adding the code to handle the other scenarios (2 digit numbers, 3 digit numbers, etc).
Assume that the input is valid (number).
Test cases:
- 1 digit numbers
- 0 should return “zero”
- 3 should return “three”
- 7 should return “seven”
- 2 digit numbers
- 10 should return “ten”
- 14 should return “fourteen”
- 20 should return “twenty”
- 21 should return “twenty-one”
- 56 should return “fifty-six”
- 3 digit numbers
- 209 should return “two hundred and nine”
- 300 should return “three hundred”
- 417 should return “four hundred and seventeen”
- 560 should return “five hundred and sixty”
- 698 should return “six hundred and ninety-eight”
- 4 digit numbers
- 3004 should return “three thousand and four”
- 4000 should return “four thousand”
- 5020 should return “five thousand and twenty”
- 6300 should return “six thousand and three hundred”
- 7111 should return “seven thousand and one hundred and eleven”
- 5 digit numbers
- 40000 should return “forty thousand”
- 70393 should return “seventy thousand and three hundred and ninety-three”
- 87654 should return “eighty-seven thousand and six hundred and fifty-four”
- 6 digit numbers
- 500000 should return “five hundred thousand”
- 803308 should return “eight hundred and three thousand and three hundred and eight”
- 999999 should return “nine hundred and ninety-nine thousand and nine hundred and ninety-nine”
You can see my implementation here (I’m using WebStorm v8 and JS Test Driver):
Download the code (WebStorm project): NumbersToWords.zip