packages feed

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