Write a program that returns array of numbers from 1 to 100, while multiples of three return "Fizz" instead of the number, multiples of five return "Buzz". Multiples of both three and five return "FizzBuzz".
Add a way to change range, instead of printing numbers from 1 to 100. Examples: numbers from 1 to 20, from 15 to 50.
Add rules for 7 and 11: 7 returns "Foo", 11 returns "Boo" and multiples of both return "FooBoo".
Add new rule for numbers smaller than 16 which return "Small" and a rule for numbers bigger than 95 which return "Big".
Add ability to change rules for initial requirement, instead of "Fizz" (multiples of 3) return "Buzz", and instead of "Buzz" (multiples of 5) return "Fizz"
Add new rule for "multiples of 3 and 5" return "FTW", and for "multiples of 3 or 5" return "GG"
- Initialize this project with
npm
runningnpm init
- Install and configure
Jest
as a testing library - To run the tests, run
npm run test
- Write the code following the TDD (Test Driven Development) approach
- You are not allowed to write any production code unless it is to make a failing unit test pass.
- You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
- You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
Which means the workflow is:
- Write a failing test. Stop writing the test as soon as it fails.
- Write the minimal production code required for the test to pass. Stop writing any code once the test passes.
- Refactor the test code and the production code without altering the functionality. All tests should pass.
- A GitHub account
- A Local IDE or Editor
- Git Environment
- A http://toggl.com/ account and Chrome Extension
- A Netlify account
- Fork this repo into your own Github Account as a public Repository
- Create a Github Project connected to the repository
- Read carefully the task description
- Analyze the task, and create relative subtasks to track any requirement and knowledge needed
- Assign an estimate to each created subtask
- Define a deadline for the main task
- Provide a Flowchart within the project
- Where required, involve other members of the community to support you on the development
- When working on a task, move it to the In progress column and start tracking it
- After each task completion, move it to the "Done" column and stop tracking it
- After the main task completion, share the solution (e.g. your GitHub repo) over the community