Extract answers for the String module

This commit is contained in:
Felipe Sere
2016-03-13 11:30:27 +00:00
parent 7be4010f2a
commit 5509d8a4eb
2 changed files with 25 additions and 9 deletions

View File

@@ -2,38 +2,38 @@ defmodule Strings do
use Koans
koan "Strings are there to represent text" do
assert "hello" == "hello"
assert "hello" == :__
end
koan "They can be put together" do
assert "hello world" == "hello " <> "world"
assert "hello world" == :__ <> "world"
end
koan "Or pulled apart when needed" do
assert ["hello", "world"] == String.split("hello world")
assert :__ == String.split("hello world")
end
koan "Be careful, a message may be altered" do
assert "An awful day" == String.replace("An incredible day", "incredible", "awful")
assert :__ == String.replace("An incredible day", "incredible", "awful")
end
koan "But strings never lie about themselves" do
assert true == String.contains?("An incredible day", "incredible")
assert true == String.contains?("An incredible day", :__)
end
koan "Sometimes you want just the opposite of what is given" do
assert "banana" == String.reverse("ananab")
assert :__ == String.reverse("ananab")
end
koan "Other times a little cleaning is in order" do
assert "banana" == String.strip(" \n banana\n ")
assert :__ == String.strip(" \n banana\n ")
end
koan "Repetition is the mother of learning" do
assert "StringStringString" == String.duplicate("String", 3)
assert "StringStringString" == String.duplicate(:__, 3)
end
koan "Strings can be louder when necessary" do
assert "LISTEN" == String.upcase("listen")
assert "LISTEN" == String.upcase(:__)
end
end

View File

@@ -55,6 +55,22 @@ defmodule KoansHarnessTest do
test_all(Maps, answers)
end
test "String" do
answers = [
"hello",
"hello ",
["hello", "world"],
"An awful day",
"incredible",
"banana",
"banana",
"String",
"listen"
]
test_all(Strings, answers)
end
def test_all(module, answers) do
module.all_koans
|> Enum.zip(answers)