Initial Commit

This commit is contained in:
2016-08-13 18:20:14 -05:00
commit 50f4a86fd8
408 changed files with 15301 additions and 0 deletions

42
elixir/bob/README.md Normal file
View File

@@ -0,0 +1,42 @@
# Bob
Bob is a lackadaisical teenager. In conversation, his responses are very limited.
Bob answers 'Sure.' if you ask him a question.
He answers 'Whoa, chill out!' if you yell at him.
He says 'Fine. Be that way!' if you address him without actually saying
anything.
He answers 'Whatever.' to anything else.
## Instructions
Run the test file, and fix each of the errors in turn. When you get the
first test to pass, go to the first pending or skipped test, and make
that pass as well. When all of the tests are passing, feel free to
submit.
Remember that passing code is just the first step. The goal is to work
towards a solution that is as readable and expressive as you can make
it.
Please make your solution as general as possible. Good code doesn't just
pass the test suite, it works with any input that fits the
specification.
Have fun!
## Running tests
```bash
$ elixir bob_test.exs
```
(Replace `bob_test.exs` with the name of the test file.)
## Source
Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial. [view source](http://pine.fm/LearnToProgram/?Chapter=06)

8
elixir/bob/bob.exs Normal file
View File

@@ -0,0 +1,8 @@
defmodule Teenager do
def hey(input) do
cond do
true -> raise "Your implementation goes here"
end
end
end

82
elixir/bob/bob_test.exs Normal file
View File

@@ -0,0 +1,82 @@
if System.get_env("EXERCISM_TEST_EXAMPLES") do
Code.load_file("example.exs")
else
Code.load_file("bob.exs")
end
ExUnit.start
ExUnit.configure(exclude: :pending)
defmodule TeenagerTest do
use ExUnit.Case, async: true
test "stating something" do
assert Teenager.hey("Tom-ay-to, tom-aaaah-to.") == "Whatever."
end
@tag :pending
test "shouting" do
assert Teenager.hey("WATCH OUT!") == "Whoa, chill out!"
end
@tag :pending
test "asking a question" do
assert Teenager.hey("Does this cryogenic chamber make me look fat?") == "Sure."
end
@tag :pending
test "talking forcefully" do
assert Teenager.hey("Let's go make out behind the gym!") == "Whatever."
end
@tag :pending
test "talking in capitals" do
assert Teenager.hey("This Isn't Shouting!") == "Whatever."
end
@tag :pending
test "shouting numbers" do
assert Teenager.hey("1, 2, 3 GO!") == "Whoa, chill out!"
end
@tag :pending
test "shouting with special characters" do
assert Teenager.hey("ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!") == "Whoa, chill out!"
end
@tag :pending
test "shouting with no exclamation mark" do
assert Teenager.hey("I HATE YOU") == "Whoa, chill out!"
end
@tag :pending
test "statement containing question mark" do
assert Teenager.hey("Ending with ? means a question.") == "Whatever."
end
@tag :pending
test "silence" do
assert Teenager.hey("") == "Fine. Be that way!"
end
@tag :pending
test "prolonged silence" do
assert Teenager.hey(" ") == "Fine. Be that way!"
end
@tag :pending
test "only numbers" do
assert Teenager.hey("1, 2, 3") == "Whatever."
end
@tag :pending
test "question with numbers" do
assert Teenager.hey("4?") == "Sure."
end
@tag :pending
test "shouting in Russian" do
# Hopefully this is Russian for "GET OUT"
assert Teenager.hey("УХОДИТЬ") == "Whoa, chill out!"
end
end