axel-0.0.6: test/Axel/Test/NormalizeSpec.hs
{-# LANGUAGE TypeApplications #-}
module Axel.Test.NormalizeSpec where
import Axel.Denormalize
import Axel.Error
import Axel.Normalize
import Axel.Test.MockUtils
import qualified Axel.Test.Parse.ASTGen as Parse.ASTGen
import Control.Monad.Freer as Eff
import qualified Control.Monad.Freer.Error as Effs
import Hedgehog
hprop_denormalizeExpression_is_the_inverse_of_normalizeExpression :: Property
hprop_denormalizeExpression_is_the_inverse_of_normalizeExpression =
property $ do
expr <- forAll Parse.ASTGen.genExpression
expr ===
denormalizeExpression
(unwrapRight $ Eff.run . Effs.runError @Error $ normalizeExpression expr)