# Say Given a number from 0 to 999,999,999,999, spell out that number in English. ## Step 1 Handle the basic case of 0 through 99. If the input to the program is `22`, then the output should be `'twenty-two'`. Your program should complain loudly if given a number outside the blessed range. Some good test cases for this program are: - 0 - 14 - 50 - 98 - -1 - 100 ### Extension If you're on a Mac, shell out to Mac OS X's `say` program to talk out loud. ## Step 2 Implement breaking a number up into chunks of thousands. So `1234567890` should yield a list like 1, 234, 567, and 890, while the far simpler `1000` should yield just 1 and 0. The program must also report any values that are out of range. ## Step 3 Now handle inserting the appropriate scale word between those chunks. So `1234567890` should yield `'1 billion 234 million 567 thousand 890'` The program must also report any values that are out of range. It's fine to stop at "trillion". ## Step 4 Put it all together to get nothing but plain English. `12345` should give `twelve thousand three hundred forty-five`. The program must also report any values that are out of range. ### Extensions Use _and_ (correctly) when spelling out the number in English: - 14 becomes "fourteen". - 100 becomes "one hundred". - 120 becomes "one hundred and twenty". - 1002 becomes "one thousand and two". - 1323 becomes "one thousand three hundred and twenty-three". ## Setup Go through the setup instructions for JavaScript to install the necessary dependencies: http://exercism.io/languages/javascript/installation ## Running the test suite The provided test suite uses [Jasmine](https://jasmine.github.io/). You can install it by opening a terminal window and running the following command: ```sh npm install -g jasmine ``` Run the test suite from the exercise directory with: ```sh jasmine say.spec.js ``` In many test suites all but the first test have been marked "pending". Once you get a test passing, activate the next one by changing `xit` to `it`. ## Source A variation on JavaRanch CattleDrive, exercise 4a [http://www.javaranch.com/say.jsp](http://www.javaranch.com/say.jsp) ## Submitting Incomplete Solutions It's possible to submit an incomplete solution so you can see how others have completed the exercise.