elm/exercises/grade-school/GradeSchoolTests.elm

78 lines
1.9 KiB
Elm
Raw Normal View History

module Main (..) where
2015-10-14 19:02:13 +00:00
import Task
import Console
import ElmTest exposing (..)
import GradeSchool exposing (addStudent, studentsInGrade, allStudents)
2015-10-14 19:02:13 +00:00
2015-10-14 19:02:13 +00:00
tests : Test
tests =
suite
"GradeSchool"
[ test
"add student"
(assertEqual
[ "Aimee" ]
(GradeSchool.empty
|> addStudent 2 "Aimee"
|> studentsInGrade 2
)
)
, test
"add more students in same class"
(assertEqual
[ "Blair", "James", "Paul" ]
(GradeSchool.empty
|> addStudent 2 "James"
|> addStudent 2 "Blair"
|> addStudent 2 "Paul"
|> studentsInGrade 2
)
)
, test
"add students to different grades"
(assertEqual
[ [ "Chelsea" ], [ "Logan" ] ]
(let
school =
GradeSchool.empty
|> addStudent 3 "Chelsea"
|> addStudent 7 "Logan"
in
[ studentsInGrade 3 school, studentsInGrade 7 school ]
)
)
, test
"get students in a grade"
(assertEqual
[ "Bradley", "Franklin" ]
(GradeSchool.empty
|> addStudent 5 "Franklin"
|> addStudent 5 "Bradley"
|> addStudent 1 "Jeff"
|> studentsInGrade 5
)
)
, test
"get all students in the school"
(assertEqual
[ ( 3, [ "Kyle" ] ), ( 4, [ "Christopher", "Jennifer" ] ), ( 6, [ "Kareem" ] ) ]
(GradeSchool.empty
|> addStudent 4 "Jennifer"
|> addStudent 6 "Kareem"
|> addStudent 4 "Christopher"
|> addStudent 3 "Kyle"
|> allStudents
)
)
, test
"get students in a non-existent grade"
(assertEqual [] (studentsInGrade 1 GradeSchool.empty))
]
2015-10-14 19:02:13 +00:00
port runner : Signal (Task.Task x ())
port runner =
Console.run (consoleRunner tests)