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