diff --git a/exercises/two-fer/canonical-data.json b/exercises/two-fer/canonical-data.json new file mode 100644 index 0000000000..834efa80ee --- /dev/null +++ b/exercises/two-fer/canonical-data.json @@ -0,0 +1,24 @@ +{ + "exercise": "two-fer", + "version": "1.0.0", + "cases": [ + { + "description": "no name given", + "property": "twoFer", + "input": null, + "expected": "One for you, one for me." + }, + { + "description": "a name given", + "property": "twoFer", + "input": "Alice", + "expected": "One for Alice, one for me." + }, + { + "description": "another name given", + "property": "twoFer", + "input": "Bob", + "expected": "One for Bob, one for me." + } + ] +} diff --git a/exercises/two-fer/description.md b/exercises/two-fer/description.md new file mode 100644 index 0000000000..630a454ac0 --- /dev/null +++ b/exercises/two-fer/description.md @@ -0,0 +1,40 @@ +`Two-fer` or `2-fer` is short for two for one. One for you and one for me. + +``` +"One for X, one for me." +``` + +When X is a name or "you". + +If the given name is "Alice", the result should be "One for Alice, one for me." +If no name is given, the result should be "One for you, one for me." + + +## Test-Driven Development + +As programmers mature, they eventually want to test their code. + +Here at Exercism we simulate [Test-Driven +Development](http://en.wikipedia.org/wiki/Test-driven_development) (TDD), where +you write your tests before writing any functionality. The simulation comes in +the form of a pre-written test suite, which will signal that you have solved +the problem. + +It will also provide you with a safety net to explore other solutions without +breaking the functionality. + +### A typical TDD workflow on Exercism: + +1. Run the test file and pick one test that's failing. +2. Write some code to fix the test you picked. +3. Re-run the tests to confirm the test is now passing. +4. Repeat from step 1. +5. Submit your solution (`exercism submit /path/to/file`) + +## Instructions + +Submissions are encouraged to be general, within reason. Having said that, it's +also important not to over-engineer a solution. + +It's important to remember that the goal is to make code as expressive and +readable as we can. diff --git a/exercises/two-fer/metadata.yml b/exercises/two-fer/metadata.yml new file mode 100644 index 0000000000..06a51b2f97 --- /dev/null +++ b/exercises/two-fer/metadata.yml @@ -0,0 +1,4 @@ +--- +blurb: 'Create a sentence of the form "One for X, one for me."' +source: "This is an exercise to introduce users to basic programming constructs, just after hello World." +source_url: "https://en.wikipedia.org/wiki/Two-fer"