Sha256: 3386a0fb958da3fc08b4497ff76550c2ca23fc6e791f506e21ed8f5afc865fc1

Contents?: true

Size: 1.49 KB

Versions: 45

Compression:

Stored size: 1.49 KB

Contents

{-# OPTIONS_GHC -fno-warn-type-defaults #-}
{-# LANGUAGE FlexibleContexts           #-}
{-# LANGUAGE OverloadedStrings          #-}

import GHC.Exts          (toList)
import Test.Hspec        (Spec, it, shouldBe)
import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)

import Series (slices)

main :: IO ()
main = hspecWith defaultConfig {configFastFail = True} specs

specs :: Spec
specs = do

    let x `shouldHaveSlices` yss = (map toList . toList) x `shouldBe` yss

    it "slices of one" $ do
      slices 1 ""      `shouldHaveSlices` []
      slices 1 "01234" `shouldHaveSlices` [[0], [1], [2], [3], [4]]

    it "slices of two" $ do
      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 "01"   `shouldHaveSlices` []
      slices 3 "012"  `shouldHaveSlices` [[0,1,2]]
      slices 3 "0123" `shouldHaveSlices` [[0,1,2], [1,2,3]]

    it "slices can have duplicates" $
      slices 3 "777777" `shouldHaveSlices` [[7,7,7], [7,7,7], [7,7,7], [7,7,7]]

    it "slices of a long series" $
      slices 5 "918493904243" `shouldHaveSlices` [
          [9,1,8,4,9]
        , [1,8,4,9,3]
        , [8,4,9,3,9]
        , [4,9,3,9,0]
        , [9,3,9,0,4]
        , [3,9,0,4,2]
        , [9,0,4,2,4]
        , [0,4,2,4,3]
        ]

    it "slices of zero" $ do
      slices 0 ""    `shouldHaveSlices` [[]]
      slices 0 "012" `shouldHaveSlices` [[],[],[],[]]

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.158 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.157 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.156 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.155 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.154 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.153 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.152 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.151 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.150 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.149 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.148 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.147 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.146 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.145 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.144 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.143 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.142 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.141 tracks/haskell/exercises/series/test/Tests.hs
trackler-2.2.1.140 tracks/haskell/exercises/series/test/Tests.hs