kindergarten-garden
This commit is contained in:
90
elixir/kindergarten-garden/test/garden_test.exs
Normal file
90
elixir/kindergarten-garden/test/garden_test.exs
Normal file
@@ -0,0 +1,90 @@
|
||||
defmodule GardenTest do
|
||||
use ExUnit.Case
|
||||
|
||||
test "gets the garden for Alice with just her plants" do
|
||||
garden_info = Garden.info("RC\nGG")
|
||||
assert garden_info.alice == {:radishes, :clover, :grass, :grass}
|
||||
end
|
||||
|
||||
test "gets another garden for Alice with just her plants" do
|
||||
garden_info = Garden.info("VC\nRC")
|
||||
assert garden_info.alice == {:violets, :clover, :radishes, :clover}
|
||||
end
|
||||
|
||||
test "returns an empty tuple if the child has no plants" do
|
||||
garden_info = Garden.info("VC\nRC")
|
||||
assert garden_info.bob == {}
|
||||
end
|
||||
|
||||
test "gets the garden for Bob" do
|
||||
garden_info = Garden.info("VVCG\nVVRC")
|
||||
assert garden_info.bob == {:clover, :grass, :radishes, :clover}
|
||||
end
|
||||
|
||||
test "plants are assigned in alphabetical order" do
|
||||
garden_info = Garden.info("VVCC\nGGRR", [:bob, :alice])
|
||||
assert garden_info.alice == {:violets, :violets, :grass, :grass}
|
||||
assert garden_info.bob == {:clover, :clover, :radishes, :radishes}
|
||||
end
|
||||
|
||||
test "a garden for 3 students" do
|
||||
garden_info = Garden.info("VVCCGG\nVVCCGG")
|
||||
assert garden_info.alice == {:violets, :violets, :violets, :violets}
|
||||
assert garden_info.bob == {:clover, :clover, :clover, :clover}
|
||||
assert garden_info.charlie == {:grass, :grass, :grass, :grass}
|
||||
end
|
||||
|
||||
test "gets the garden for all students" do
|
||||
garden_info = Garden.info("VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV")
|
||||
assert garden_info.alice == {:violets, :radishes, :violets, :radishes}
|
||||
assert garden_info.bob == {:clover, :grass, :clover, :clover}
|
||||
assert garden_info.charlie == {:violets, :violets, :clover, :grass}
|
||||
assert garden_info.david == {:radishes, :violets, :clover, :radishes}
|
||||
assert garden_info.eve == {:clover, :grass, :radishes, :grass}
|
||||
assert garden_info.fred == {:grass, :clover, :violets, :clover}
|
||||
assert garden_info.ginny == {:clover, :grass, :grass, :clover}
|
||||
assert garden_info.harriet == {:violets, :radishes, :radishes, :violets}
|
||||
assert garden_info.ileana == {:grass, :clover, :violets, :clover}
|
||||
assert garden_info.joseph == {:violets, :clover, :violets, :grass}
|
||||
assert garden_info.kincaid == {:grass, :clover, :clover, :grass}
|
||||
assert garden_info.larry == {:grass, :violets, :clover, :violets}
|
||||
end
|
||||
|
||||
test "accepts custom child names" do
|
||||
garden_info = Garden.info("VC\nRC", [:nate, :maggie])
|
||||
assert garden_info.maggie == {:violets, :clover, :radishes, :clover}
|
||||
assert garden_info.nate == {}
|
||||
end
|
||||
|
||||
test "gets the garden for all students with custom child names" do
|
||||
names = [
|
||||
:maggie,
|
||||
:nate,
|
||||
:xander,
|
||||
:ophelia,
|
||||
:pete,
|
||||
:reggie,
|
||||
:sylvia,
|
||||
:tanner,
|
||||
:ursula,
|
||||
:victor,
|
||||
:winnie,
|
||||
:ynold
|
||||
]
|
||||
|
||||
garden_string = "VRCGVVRVCGGCCGVRGCVCGCGV\nVRCCCGCRRGVCGCRVVCVGCGCV"
|
||||
garden_info = Garden.info(garden_string, names)
|
||||
assert garden_info.maggie == {:violets, :radishes, :violets, :radishes}
|
||||
assert garden_info.nate == {:clover, :grass, :clover, :clover}
|
||||
assert garden_info.ophelia == {:violets, :violets, :clover, :grass}
|
||||
assert garden_info.pete == {:radishes, :violets, :clover, :radishes}
|
||||
assert garden_info.reggie == {:clover, :grass, :radishes, :grass}
|
||||
assert garden_info.sylvia == {:grass, :clover, :violets, :clover}
|
||||
assert garden_info.tanner == {:clover, :grass, :grass, :clover}
|
||||
assert garden_info.ursula == {:violets, :radishes, :radishes, :violets}
|
||||
assert garden_info.victor == {:grass, :clover, :violets, :clover}
|
||||
assert garden_info.winnie == {:violets, :clover, :violets, :grass}
|
||||
assert garden_info.xander == {:grass, :clover, :clover, :grass}
|
||||
assert garden_info.ynold == {:grass, :violets, :clover, :violets}
|
||||
end
|
||||
end
|
||||
2
elixir/kindergarten-garden/test/test_helper.exs
Normal file
2
elixir/kindergarten-garden/test/test_helper.exs
Normal file
@@ -0,0 +1,2 @@
|
||||
ExUnit.start()
|
||||
ExUnit.configure(exclude: :pending, trace: true)
|
||||
Reference in New Issue
Block a user