packages feed

deka-tests-0.6.0.2: native/Properties.hs

{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
module Properties where

import qualified Deka.Native.Abstract.Generators as G
import qualified Deka.Native as N
import Test.QuickCheck
import qualified Deka.Dec as D

prop_abstractToStringToAbstract =
  forAll G.abstract $ \a ->
  case N.stringToAbstract . N.abstractToString $ a of
    Left _ -> property False
    Right a' -> a === a'

prop_decToAbstractToDec =
  forAll G.abstract $ \a ->
  let (d, flgs) = N.abstractToDec a
      a' = N.decToAbstract d
      (d'', flgs') = N.abstractToDec a'
  in flgs == D.emptyFlags && flgs' == D.emptyFlags
     ==> D.compareTotal d d'' == EQ