Sha256: 81f2f3498778c5e3e50845abf38c8da23e99f5be19307364f033c44b6e1a0af9

Contents?: true

Size: 1.49 KB

Versions: 165

Compression:

Stored size: 1.49 KB

Contents

import Test.Hspec        (Spec, describe, 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 = describe "linked-list" $ do

    -- As of 2016-08-10, there was no reference file
    -- for the test cases in `exercism/x-common`.

    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

165 entries across 165 versions & 1 rubygems

Version Path
trackler-2.1.0.9 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.8 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.7 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.6 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.5 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.4 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.3 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.2 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.1 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.1.0.0 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.55 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.54 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.53 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.52 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.51 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.50 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.49 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.48 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.47 tracks/haskell/exercises/linked-list/test/Tests.hs
trackler-2.0.8.46 tracks/haskell/exercises/linked-list/test/Tests.hs