76 lines
1.5 KiB
Elixir
76 lines
1.5 KiB
Elixir
if !System.get_env("EXERCISM_TEST_EXAMPLES") do
|
|
Code.load_file("school.exs", __DIR__)
|
|
end
|
|
|
|
ExUnit.start()
|
|
ExUnit.configure(trace: true)
|
|
|
|
defmodule SchoolTest do
|
|
use ExUnit.Case
|
|
|
|
@db %{}
|
|
|
|
test "add student" do
|
|
actual = School.add(@db, "Aimee", 2)
|
|
assert actual == %{2 => ["Aimee"]}
|
|
end
|
|
|
|
@tag :pending
|
|
test "add more students in same class" do
|
|
actual =
|
|
@db
|
|
|> School.add("James", 2)
|
|
|> School.add("Blair", 2)
|
|
|> School.add("Paul", 2)
|
|
|
|
assert Enum.sort(actual[2]) == ["Blair", "James", "Paul"]
|
|
end
|
|
|
|
@tag :pending
|
|
test "add students to different grades" do
|
|
actual =
|
|
@db
|
|
|> School.add("Chelsea", 3)
|
|
|> School.add("Logan", 7)
|
|
|
|
assert actual == %{3 => ["Chelsea"], 7 => ["Logan"]}
|
|
end
|
|
|
|
@tag :pending
|
|
test "get students in a grade" do
|
|
actual =
|
|
@db
|
|
|> School.add("Bradley", 5)
|
|
|> School.add("Franklin", 5)
|
|
|> School.add("Jeff", 1)
|
|
|> School.grade(5)
|
|
|
|
assert Enum.sort(actual) == ["Bradley", "Franklin"]
|
|
end
|
|
|
|
@tag :pending
|
|
test "get students in a non existent grade" do
|
|
assert [] == School.grade(@db, 1)
|
|
end
|
|
|
|
@tag :pending
|
|
test "sort school by grade and by student name" do
|
|
actual =
|
|
@db
|
|
|> School.add("Bart", 4)
|
|
|> School.add("Jennifer", 4)
|
|
|> School.add("Christopher", 4)
|
|
|> School.add("Kareem", 6)
|
|
|> School.add("Kyle", 3)
|
|
|> School.sort()
|
|
|
|
expected = [
|
|
{3, ["Kyle"]},
|
|
{4, ["Bart", "Christopher", "Jennifer"]},
|
|
{6, ["Kareem"]}
|
|
]
|
|
|
|
assert expected == actual
|
|
end
|
|
end
|