The challenge of this week is a very famous Code Kata called as Coin Tender. This kata assumes very important and have subtle association with the Post.
Hence I suggest you to first attempt to practice this Code Kata before reading the post. Then again return to this Code Kata.
Well, the requirement is, creating a virtual coin-tender, to dispense Penny, Nickel, Dime and Quarter in exchange of the given input.
P -> Penny;
N -> Nickel (5 Penny);
D -> Dime (5 Nickel or 10 Penny);
Q -> Quarter (25 Penny);
if you input 7 to the coin tender it should respond with NPP.
If you input 42 the response should be QDNPP.
The code satisfies the first two test cases. The given code is deliberately un-refactored.
The challenge is; refactor the code and extend the code to dispense Dime and Quarter.
Enjoy observing how your code is transformed each time you introduce a test.
Looking forward to your clean code and observations.