tracks/haskell/exercises/series/test/Tests.hs in trackler-2.0.0.3 vs tracks/haskell/exercises/series/test/Tests.hs in trackler-2.0.0.4
- old
+ new
@@ -1,7 +1,10 @@
{-# OPTIONS_GHC -fno-warn-type-defaults #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE OverloadedStrings #-}
+import GHC.Exts (toList)
import Test.Hspec (Spec, describe, it, shouldBe)
import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)
import Series (slices)
@@ -9,25 +12,27 @@
main = hspecWith defaultConfig {configFastFail = True} specs
specs :: Spec
specs = describe "series" $ do
- -- As of 2016-09-12, there was no reference file
+ -- As of 2016-11-08, there was no reference file
-- for the test cases in `exercism/x-common`.
+ let x `shouldHaveSlices` yss = (map toList . toList) x `shouldBe` yss
+
it "slices of one" $ do
- slices 1 "" `shouldBe` []
- slices 1 "01234" `shouldBe` [[0], [1], [2], [3], [4]]
+ slices 1 "" `shouldHaveSlices` []
+ slices 1 "01234" `shouldHaveSlices` [[0], [1], [2], [3], [4]]
it "slices of two" $ do
- slices 2 "" `shouldBe` []
- slices 2 "01" `shouldBe` [[0,1]]
- slices 2 "01234" `shouldBe` [[0,1], [1,2], [2,3], [3,4]]
+ slices 2 "" `shouldHaveSlices` []
+ slices 2 "01" `shouldHaveSlices` [[0,1]]
+ slices 2 "01234" `shouldHaveSlices` [[0,1], [1,2], [2,3], [3,4]]
it "slices of three" $ do
- slices 3 "ab" `shouldBe` []
- slices 3 "012" `shouldBe` [[0,1,2]]
- slices 3 "0123" `shouldBe` [[0,1,2], [1,2,3]]
+ slices 3 "ab" `shouldHaveSlices` []
+ slices 3 "012" `shouldHaveSlices` [[0,1,2]]
+ slices 3 "0123" `shouldHaveSlices` [[0,1,2], [1,2,3]]
it "slices of zero" $ do
- slices 0 "" `shouldBe` [[]]
- slices 0 "012" `shouldBe` [[]]
+ slices 0 "" `shouldHaveSlices` [[]]
+ slices 0 "012" `shouldHaveSlices` [[]]