context-free-grammar-0.0.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))
]