module Set where -- base import Prelude hiding (Foldable (..)) -- containers import Data.Set (fromList, singleton) -- tasty import Test.Tasty -- tasty-hunit import Test.Tasty.HUnit (testCase, (@?=)) -- changeset import Control.Monad.Changeset.Class import Control.Monad.Trans.Changeset -- changeset-containers import Data.Monoid.RightAction.Set tests :: TestTree tests = testGroup "Set" [ testCase "Can insert" $ runChangeset (changeSingle (Insert True)) mempty @?= ((), singleton True) , testCase "Can read after insert" $ let action = do changeSingle $ Insert True m <- current changeSingle $ Insert False return m in runChangeset action mempty @?= (singleton True, fromList [True, False]) , testCase "Can delete after insert" $ let action = do changeSingle $ Insert True changeSingle $ Insert False changeSingle $ Delete True in execChangeset action mempty @?= singleton False ]