diff --git a/elisp/two-fer/README.md b/elisp/two-fer/README.md new file mode 100644 index 0000000..f60404a --- /dev/null +++ b/elisp/two-fer/README.md @@ -0,0 +1,19 @@ +# Two Fer + +`Two-fer` or `2-fer` is short for two for one. One for you and one for me. + +```text +"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." + +## Source + +[https://en.wikipedia.org/wiki/Two-fer](https://en.wikipedia.org/wiki/Two-fer) + +## Submitting Incomplete Solutions +It's possible to submit an incomplete solution so you can see how others have completed the exercise. diff --git a/elisp/two-fer/two-fer-test.el b/elisp/two-fer/two-fer-test.el new file mode 100644 index 0000000..86c87fe --- /dev/null +++ b/elisp/two-fer/two-fer-test.el @@ -0,0 +1,21 @@ +;;; two-fer-test.el --- Tests for Two-fer (exercism) + +;;; Commentary: +;; Common test data version: 1.2.0 4fc1acb + +;;; Code: + +(load-file "two-fer.el") + +(ert-deftest no-name-given () + (should (equal (two-fer) "One for you, one for me."))) + +(ert-deftest a-name-given () + (should (equal (two-fer "Alice") "One for Alice, one for me."))) + +(ert-deftest another-name-given () + (should (equal (two-fer "Bob") "One for Bob, one for me."))) + +(provide 'two-fer-test) + +;;; two-fer-test.el ends here diff --git a/elisp/two-fer/two-fer.el b/elisp/two-fer/two-fer.el new file mode 100644 index 0000000..0c3a7ee --- /dev/null +++ b/elisp/two-fer/two-fer.el @@ -0,0 +1,15 @@ +;;; two-fer.el --- Two-fer Exercise (exercism) + +;;; Commentary: + +;;; Code: + +(provide 'two-fer) + +(defun two-fer(&optional name) + "Return a twofer phrase as a formatted string. +NAME, if provided, is used to specify the first recipient; +it defaults to 'you'." + (if (not name) (setq name "you")) + (format "One for %s, one for me." name)) +;;; two-fer.el ends here