No description, website, or topics provided.
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
tests
README.mdown

README.mdown

BBC Coin Algorithm Test

DEVELOPER ASSESSMENT

Summary

Write a simple application that given a number of pennies will calculate the minimum number of Sterling coins needed to make that amount.

Eg. 123p = 1 x £1, 1 x 20p, 1 x 2p, 1 x 1p

You should be prepared to spend at least two hours on it.

Requirements

  • Account for only the common £2, £1, 50p, 20p, 2p and 1p coins. Ignore those commemorative £5 coins.
  • You MUST use JavaScript (node.js is allowed too!), CSS and HTML to do this.
  • The user interface should consist of a input field that accepts an 'amount' string (Eg. 92p, £2.12) and displays the denominations needed when the user hits 'enter'.
  • Include any instructions, libraries, build files in order for us to run & view your code.
  • If you run out of time include a note of things you would like to have done in a README file.

What we are looking for

  • High quality and maintainable code.
  • Accessible, semantic, valid HTML.
  • Unobtrusive JavaScript.
  • Test cases for your code (Eg, Qunit, Jasmine), written first!
  • Well documented and commented code.
  • Follow coding standards.
  • Extensible user input parsing and validation.
  • To sensibly separate functionality (Eg, input, models, utils, views) following OO patterns.
  • Clean visual design.

Test Data

Our business analyst has given us some test data to help you understand the expected user input to this application.

In the first column is a string of user input, and in the second the desired integer expressed as pence.

| input | pence (canonical) | description |
| 4 | 4 | single digit |
| 85 | 85 | double digit |
| 197p | 197 | pence symbol |
| 2p | 2 | pence symbol single digit |
| 1.87 | 187 | pounds decimal |
| £1.23 | 123 | pound symbol |
| £2 | 200 | single digit pound symbol |
| £10 | 1000 | double digit pound symbol |
| £1.87p | 187 | pound and pence symbol |
| £1p | 100 | missing pence |
| £1.p | 100 | missing pence but present decimal point |
| 001.41p | 141 | buffered zeros |
| 4.235p | 424 | rounding three decimal places to two |
| £1.257422457p | 126 | rounding with symbols |

Likewise, the application should not accept the following inputs,

| input | pence (canonical) | description |
| | 0 | empty string |
| 1x | 0 | non-numeric character |
| £1x.0p | 0 | non-numeric character |
| £p | 0 | missing digits |