packages feed

mcmc-0.1.3: test/Mcmc/Move/SlideSpec.hs

-- |
-- Module      :  Mcmc.Move.SlideSpec
-- Description :  Unit tests for Mcmc.Move.SlideSpec
-- Copyright   :  (c) Dominik Schrempf 2020
-- License     :  GPL-3.0-or-later
--
-- Maintainer  :  dominik.schrempf@gmail.com
-- Stability   :  unstable
-- Portability :  portable
--
-- Creation date: Tue May 19 12:07:43 2020.
module Mcmc.Move.SlideSpec
  ( spec,
  )
where

import Data.Maybe
import Mcmc.Move
import Mcmc.Move.Slide
import Test.Hspec
import Test.QuickCheck

prop_sym :: Eq b => (a -> a -> b) -> a -> a -> Bool
prop_sym f x y = f x y == f y x

slideSym :: Move Double
slideSym = slide "symmetric" 1 id 0 1.0 False

spec :: Spec
spec =
  describe "slide"
    $ it "has a symmetric proposal distribution if mean is 0"
    $ property
    $ prop_sym (fromJust $ mvDensity . mvSimple $ slideSym)