packages feed

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))
    ]