The focus is to practice writing the best code we can possibly write and challenge ourselves. It is important to mention that the goal is not to finish the exercise as soon as posible, but to learn during the process via the discussion with our partner.
Each developer must come with their favourite IDE ready to start practicing TDD, ideally with an empty class or function and its associated test prepared to be launched.
- Developers should work in pairs.
- As a rule, Test-Driven Development is mandatory. If you are unaware of this procedure, please try to pair with someone who does.
- We will run a small retrospective at the end of the session where we will discuss what difficulties we found, what we have done and what we have learnt.
- Developers would thank their pairs when the session is over.
- It's neither a master class nor a workshop, but you will learn new approaches to face problems from different perspectives.
- It's not a place to learn new languages. At least, one of the pair should be comfortable with the chosen programming language.
- It's not a place to learn how to set up an environment.
- Find a pair.
- Decide which programming language you are going to use and in which laptop you will code.
- Read carefully the problem described below and if you have any doubt, please refer to the facilitator.
- Do one task at a time. The trick is to learn to work incrementally.
Thanks to Emmanuel Gaillot, who designed this Kata.
Once upon a time there was a series of 5 books about a very English hero called Harry. (At least when this Kata was invented, there were only 5. Since then they have multiplied) Children all over the world thought he was fantastic, and, of course, so did the publisher. So in a gesture of immense generosity to mankind, (and to increase sales) they set up the following pricing model to take advantage of Harry’s magical powers.
One copy of any of the five books costs 8 EUR. If, however, you buy two different books from the series, you get a 5% discount on those two books. If you buy 3 different books, you get a 10% discount. With 4 different books, you get a 20% discount. If you go the whole hog, and buy all 5, you get a huge 25% discount.
Note that if you buy, say, four books, of which 3 are different titles, you get a 10% discount on the 3 that form part of a set, but the fourth book still costs 8 EUR. Potter mania is sweeping the country and parents of teenagers everywhere are queueing up with shopping baskets overflow- ing with Potter books. Your mission is to write a piece of code to calculate the price of any conceivable shopping basket, giving as big a discount as possible.
How much does this basket of books cost?
- 2 copies of the first book
- 2 copies of the second book
- 2 copies of the third book
- 1 copy of the fourth book
- 1 copy of the fifth book
Answer:
51.20 EUR
Keep calm and refactor on green! Have fun!