context-free-grammar-0.1.1: tests/Data/Cfg/LookaheadSetTests.hs
{-# LANGUAGE FlexibleInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Cfg.LookaheadSetTests
( tests
) where
import Control.Monad (liftM2)
import Data.Cfg.LookaheadSet (LookaheadSet, mkLookaheadSet)
import Test.Framework (Test, testGroup)
import Test.Framework.Providers.QuickCheck2 (testProperty)
import Test.QuickCheck (Arbitrary(..), listOf)
import Test.QuickCheck.Property.Monoid (T(..), eq, prop_Monoid)
instance Arbitrary (LookaheadSet Int) where
arbitrary = liftM2 mkLookaheadSet arbitrary $ listOf arbitrary
tests :: Test
tests =
testGroup
"Data.Cfg.Lookahead"
[ testProperty "monoid laws for lookahead sets" $
eq $ prop_Monoid (T :: T (LookaheadSet Int))
]