Sha256: 273db605ebc737684f21b5fd47df1ed10446d76cda77f838446821bc7ab93747
Contents?: true
Size: 1.64 KB
Versions: 165
Compression:
Stored size: 1.64 KB
Contents
{-# OPTIONS_GHC -fno-warn-type-defaults #-} import Test.Hspec (Spec, describe, it, shouldBe) import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith) import School (add, empty, grade, sorted) main :: IO () main = hspecWith defaultConfig {configFastFail = True} specs specs :: Spec specs = describe "grade-school" $ do -- As of 2016-07-27, there was no reference file -- for the test cases in `exercism/x-common`. let fromList = foldr (uncurry add) empty let fromGrade g = fromList . zip (repeat g) it "add student" $ sorted (add 2 "Aimee" empty) `shouldBe` [(2, ["Aimee"])] it "add more students in same class" $ sorted (fromGrade 2 ["James", "Blair", "Paul"]) `shouldBe` [(2, ["Blair", "James", "Paul"])] it "add students to different grades" $ sorted (fromList [(3, "Chelsea"), (7, "Logan")]) `shouldBe` [(3, ["Chelsea"]), (7, ["Logan"])] it "get students in a grade" $ grade 5 (fromList [(5, "Franklin"), (5, "Bradley"), (1, "Jeff")]) `shouldBe` ["Bradley", "Franklin"] it "get students in a non-existent grade" $ grade 1 empty `shouldBe` [] it "sorted school" $ sorted (fromList [ (4, "Jennifer" ) , (6, "Kareem" ) , (4, "Christopher") , (3, "Kyle" ) ] ) `shouldBe` [ (3, ["Kyle" ] ) , (4, ["Christopher", "Jennifer"] ) , (6, ["Kareem" ] ) ]
Version data entries
165 entries across 165 versions & 1 rubygems