packages feed

grisette-0.4.0.0: test/Grisette/Lib/Control/Monad/State/ClassTests.hs

module Grisette.Lib.Control.Monad.State.ClassTests
  ( monadStateClassTests,
  )
where

import Control.Monad.State.Lazy (state)
import Control.Monad.Trans.State.Lazy (runStateT)
import Grisette.Lib.Control.Monad.State.Class
  ( mrgGet,
    mrgGets,
    mrgModify,
    mrgModify',
    mrgPut,
    mrgState,
  )
import Grisette.Lib.Control.Monad.Trans.State.Common
  ( mrgGetTest,
    mrgGetsTest,
    mrgModifyTest,
    mrgPutTest,
    mrgStateTest,
  )
import Test.Framework (Test, testGroup)
import Test.Framework.Providers.HUnit (testCase)

monadStateClassTests :: Test
monadStateClassTests =
  testGroup
    "Class"
    [ testCase "mrgState" $ mrgStateTest mrgState runStateT,
      testCase "mrgGet" $ mrgGetTest state runStateT mrgGet,
      testCase "mrgPut" $ mrgPutTest state runStateT mrgPut,
      testCase "mrgModify" $ mrgModifyTest state runStateT mrgModify,
      testCase "mrgModify'" $ mrgModifyTest state runStateT mrgModify',
      testCase "mrgGets" $ mrgGetsTest state runStateT mrgGets
    ]