elynx-seq-0.1.0: test/ELynx/Data/MarkovProcess/NucleotideSpec.hs
{- |
Module : ELynx.Data.MarkovProcess.NucleotideSpec
Copyright : (c) Dominik Schrempf 2019
License : GPL-3
Maintainer : dominik.schrempf@gmail.com
Stability : unstable
Portability : portable
Creation date: Fri Jan 25 16:47:28 2019.
-}
module ELynx.Data.MarkovProcess.NucleotideSpec
(spec) where
import Data.Vector.Generic
import Test.Hspec
import ELynx.Data.MarkovProcess.Nucleotide
import ELynx.Data.MarkovProcess.RateMatrix
import ELynx.Data.MarkovProcess.SubstitutionModel
import ELynx.Tools.Equality (nearlyEqVec)
stationaryDist :: StationaryDistribution
stationaryDist = fromList [0.2, 0.3, 0.3, 0.2]
hkyModel :: SubstitutionModel
hkyModel = hky 6.0 stationaryDist
spec :: Spec
spec =
describe "getStationaryDistribution" $
it "extracts the stationary distribution from a rate matrix" $ do
let sd = getStationaryDistribution (rateMatrix hkyModel)
sd `nearlyEqVec` stationaryDist `shouldBe` True