packages feed

essence-of-live-coding-0.2.7: test/Monad/Trans.hs

{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Monad.Trans where

-- test-framework
import Test.Framework

-- test-framework-quickcheck2
import Test.Framework.Providers.QuickCheck2

-- QuickCheck
import Test.QuickCheck

-- essence-of-live-coding
import LiveCoding
import LiveCoding.Cell.Monad.Trans (State (State))

test =
  testGroup
    "Monad.Trans"
    [ testProperty "Migrates into runStateL" $
        \(stateT :: Int) (stateInternal :: Int) ->
          State {..} === migrate State {stateInternal = 23, ..} stateInternal
    , testProperty "Migrates from runStateL" $
        \(stateT :: Int) (stateInternal :: Int) ->
          stateInternal === migrate 42 State {..}
    ]