packages feed

turingMachine-1.0.0.0: test/SigmaTest.hs

{-# OPTIONS_GHC -fno-warn-tabs #-}
module Main where

import qualified Data.Set              as Set
import           Data.Sigma
import           Test.Hspec
import           Test.Hspec.QuickCheck
import           Test.QuickCheck

enumWordTest = describe "enumWordTest" $ do
  let alpF = enumWord (Set.fromList ['a','b','c'])
  it "Empty word and empty alphabet" $
    enumWord Set.empty [] `shouldBe` 0
  it "Empty word and non-empty alphabet" $
    alpF [] `shouldBe` 0
  it "Symbol word1" $
    alpF "a" `shouldBe` 1
  it "Symbol word2" $
    alpF "b" `shouldBe` 2
  it "Symbol word3" $
    alpF "c" `shouldBe` 3
  it "Two Symbol word" $
    alpF "aa" `shouldBe` 4
  it "Two Symbol word1" $
    alpF "ab" `shouldBe` 5
  it "Two Symbol word2" $
    alpF "bc" `shouldBe` 9
  it "Two Symbol word3" $
    alpF "ca" `shouldBe` 10

main::IO ()
main = hspec $
  describe "Data.Sigma" enumWordTest