Sha256: ec6cda0838b99f172d53dd6711c98d32fef8e51ab988d175a766c0d16bf87a4f

Contents?: true

Size: 1.35 KB

Versions: 96

Compression:

Stored size: 1.35 KB

Contents

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

import SecretHandshake (handshake)

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

specs :: Spec
specs = do

    it "wink for 1" $
      handshake (1 :: Int) `shouldBe` ["wink"]

    it "double blink for 10" $
      handshake (2 :: Int) `shouldBe` ["double blink"]

    it "close your eyes for 100" $
      handshake (4 :: Int) `shouldBe` ["close your eyes"]

    it "jump for 1000" $
      handshake (8 :: Int) `shouldBe` ["jump"]

    it "combine two actions" $
      handshake (3 :: Int) `shouldBe` ["wink", "double blink"]

    it "reverse two actions" $
      handshake (19 :: Int) `shouldBe` ["double blink", "wink"]

    it "reversing one action gives the same action" $
      handshake (24 :: Int) `shouldBe` ["jump"]

    it "reversing no actions still gives no actions" $
      handshake (16 :: Int) `shouldBe` []

    it "all possible actions" $
      handshake (15 :: Int) `shouldBe` ["wink", "double blink", "close your eyes", "jump"]

    it "reverse all possible actions" $
      handshake (31 :: Int) `shouldBe` ["jump", "close your eyes", "double blink", "wink"]

    it "do nothing for zero" $
      handshake (0 :: Int) `shouldBe` []

    it "do nothing if lower 5 bits not set" $
      handshake (32 :: Int) `shouldBe` []

Version data entries

96 entries across 96 versions & 1 rubygems

Version Path
trackler-2.2.1.45 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.44 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.43 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.42 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.41 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.40 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.39 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.38 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.37 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.36 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.35 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.34 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.33 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.32 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.31 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.30 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.29 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.28 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.27 tracks/haskell/exercises/secret-handshake/test/Tests.hs
trackler-2.2.1.26 tracks/haskell/exercises/secret-handshake/test/Tests.hs