lattest-lib-0.1.0.0: test/Test/Lattest/Util/ModelParsingUtils.hs
{-# LANGUAGE DeriveGeneric #-}
module Test.Lattest.Util.ModelParsingUtils (
testReadAutFile
)
where
import Prelude hiding (take)
import Test.HUnit
import qualified Data.Set as Set
import Lattest.Util.ModelParsingUtils(readAutFile)
import Lattest.Model.Alphabet(IOAct(..))
expectedTransitions :: [(String, IOAct String String, String)]
expectedTransitions =
[ ("Idle", In "coin_i", "CoinInserted")
, ("CoinInserted", In "select_coffee_i", "Brewing")
, ("Brewing", Out "ready_o", "Ready")
, ("Ready", In "take_cup_i", "Idle")
]
testReadAutFile :: Test
testReadAutFile = TestCase $ do
let filePath = "./test/Test/Lattest/Util/dummy.aut"
expectedInAlphabet = Set.fromList ["take_cup_i", "select_coffee_i", "coin_i"]
expectedOutAlphabet = Set.fromList ["ready_o"]
expectedStates = Set.fromList ["Idle", "Brewing", "CoinInserted", "Ready"]
(inputAlphabet, outputAlphabet, states, initialState, Just transitions) <- readAutFile filePath
assertEqual "IAlphabet" expectedInAlphabet (Set.fromList inputAlphabet)
assertEqual "OAlphabet" expectedOutAlphabet (Set.fromList outputAlphabet)
assertEqual "Expected states" expectedStates states
assertEqual "Initial state" "Idle" initialState
assertEqual "Transitions" expectedTransitions transitions