Book Store in PHP
To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts of multiplebook purchases.
1  exercism fetch php bookstore

Book Store
To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts on multiple book purchases.
One copy of any of the five books costs $8.
If, however, you buy two different books, you get a 5% discount on those two books.
If you buy 3 different books, you get a 10% discount.
If you buy 4 different books, you get a 20% discount.
If you buy all 5, you get a 25% discount.
Note: that if you buy 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.
Your mission is to write a piece of code to calculate the price of any conceivable shopping basket (containing only books of the same series), giving as big a discount as possible.
For example, 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
One way of grouping these 8 books is:
 1 group of 5 > 25% discount (1st,2nd,3rd,4th,5th)
 +1 group of 3 > 10% discount (1st,2nd,3rd)
This would give a total of:
 5 books at a 25% discount
 +3 books at a 10% discount
Resulting in:
 5 x (8  2.00) == 5 x 6.00 == $30.00
 +3 x (8  0.80) == 3 x 7.20 == $21.60
For a total of $51.60
However, a different way to group these 8 books is:
 1 group of 4 books > 20% discount (1st,2nd,3rd,4th)
 +1 group of 4 books > 20% discount (1st,2nd,3rd,5th)
This would give a total of:
 4 books at a 20% discount
 +4 books at a 20% discount
Resulting in:
 4 x (8  1.60) == 4 x 6.40 == $25.60
 +4 x (8  1.60) == 4 x 6.40 == $25.60
For a total of $51.20
And $51.20 is the price with the biggest discount.
Running the tests

Go to the root of your PHP exercise directory, which is
<EXERCISM_WORKSPACE>/php
. To find the Exercism workspace run1
% exercism debug  grep Workspace

Get PHPUnit if you don't have it already.

Execute the tests:
1
% ./phpunit.phar bookstore/bookstore_test.php
Source
Inspired by the harry potter kata from CyberDojo. http://cyberdojo.org
Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.