diff --git a/src/runtime/haskell/pgf2.cabal b/src/runtime/haskell/pgf2.cabal index 77dc779e0..61603ee16 100644 --- a/src/runtime/haskell/pgf2.cabal +++ b/src/runtime/haskell/pgf2.cabal @@ -62,4 +62,5 @@ test-suite transactions build-depends: base, HUnit >= 1.6.1.0, + containers, pgf2 diff --git a/src/runtime/haskell/tests/transactions.hs b/src/runtime/haskell/tests/transactions.hs index 94cd91a80..7694a74a8 100644 --- a/src/runtime/haskell/tests/transactions.hs +++ b/src/runtime/haskell/tests/transactions.hs @@ -3,6 +3,7 @@ import PGF2 import PGF2.Transactions import System.Mem import System.Exit (exitSuccess, exitFailure) +import qualified Data.Map as Map main = do gr1 <- readPGF "tests/basic.pgf" @@ -18,6 +19,11 @@ main = do gr6 <- modifyPGF gr1 (dropFunction "ind" >> dropCategory "S") + gr7 <- modifyPGF gr1 $ + createConcrete "basic_eng" $ do + setConcreteFlag "test_flag" (LStr "test") + let Just cnc = Map.lookup "basic_eng" (languages gr7) + c <- runTestTT $ TestList $ [TestCase (assertEqual "original functions" ["c","ind","s","z"] (functions gr1)) @@ -38,6 +44,9 @@ main = do ,TestCase (assertEqual "new function prob" pi (functionProbability gr2 "foo")) ,TestCase (assertEqual "old category prob" (-log 0) (categoryProbability gr1 "Q")) ,TestCase (assertEqual "new category prob" pi (categoryProbability gr2 "Q")) + ,TestCase (assertEqual "empty concretes" [] (Map.keys (languages gr1))) + ,TestCase (assertEqual "extended concretes" ["basic_eng"] (Map.keys (languages gr7))) + ,TestCase (assertEqual "added concrete flag" (Just (LStr "test")) (concreteFlag cnc "test_flag")) ] performMajorGC