Sha256: 3e10886907582eeda52d65ff8dad82e35083d6c1df89f65ba2118d3b9220d791

Contents?: true

Size: 1.36 KB

Versions: 229

Compression:

Stored size: 1.36 KB

Contents

import Test.Hspec        (Spec, it, shouldReturn)
import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)

import Deque (mkDeque, pop, push, shift, unshift)

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

{-# ANN module "HLint: ignore Reduce duplication" #-}
specs :: Spec
specs = do

    it "push pop" $ do
      deque <- mkDeque
      push deque 'a'
      push deque 'b'
      pop deque `shouldReturn` Just 'b'
      pop deque `shouldReturn` Just 'a'

    it "push shift" $ do
      deque <- mkDeque
      push deque 'a'
      push deque 'b'
      shift deque `shouldReturn` Just 'a'
      shift deque `shouldReturn` Just 'b'

    it "unshift shift" $ do
      deque <- mkDeque
      unshift deque 'a'
      unshift deque 'b'
      shift deque `shouldReturn` Just 'b'
      shift deque `shouldReturn` Just 'a'

    it "unshift pop" $ do
      deque <- mkDeque
      unshift deque 'a'
      unshift deque 'b'
      pop deque `shouldReturn` Just 'a'
      pop deque `shouldReturn` Just 'b'

    it "example" $ do
      deque <- mkDeque
      push deque 'a'
      push deque 'b'
      pop deque `shouldReturn` Just 'b'
      push deque 'c'
      shift deque `shouldReturn` Just 'a'
      unshift deque 'd'
      push deque 'e'
      shift deque `shouldReturn` Just 'd'
      pop deque `shouldReturn` Just 'e'
      pop deque `shouldReturn` Just 'c'

Version data entries

229 entries across 229 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.179 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.178 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.177 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.176 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.175 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.174 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.173 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.172 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.171 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.170 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.169 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.167 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.166 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.165 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.164 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.163 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.162 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.161 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.2.1.160 tracks/haskell/exercises/linked-list/test/Tests.hs