packages feed

chatter-0.0.0.4: tests/src/NLP/TypesTests.hs

module NLP.TypesTests where

import Test.QuickCheck (Arbitrary, arbitrary)
import Test.QuickCheck.Instances ()
import Test.Framework.Providers.QuickCheck2 (testProperty)
import Test.Framework ( testGroup, Test )

import Data.Serialize (decode, encode)
import NLP.Types (mkCorpus, Corpus(..))


tests :: Test
tests = testGroup "NLP.Types"
        [ testGroup "Serialize / Deserialize Tests"
          [ testProperty "Corpus round-trips" prop_corpusSerialize
          ]
        ]

instance Arbitrary Corpus where
  arbitrary = do
      docs <- arbitrary
      return $ mkCorpus docs

prop_corpusSerialize :: Corpus -> Bool
prop_corpusSerialize c = case (decode . encode) c of
                           Right c' -> c == c'
                           Left _ -> False