elynx-markov-0.2.1: test/ELynx/Data/MarkovProcess/RateMatrixSpec.hs
{- |
Module : ELynx.Data.MarkovProcess.RateMatrixSpec
Description : Unit tests for rate matrices
Copyright : (c) Dominik Schrempf 2020
License : GPL-3.0-or-later
Maintainer : dominik.schrempf@gmail.com
Stability : unstable
Portability : portable
Creation date: Fri Apr 17 15:18:02 2020.
-}
module ELynx.Data.MarkovProcess.RateMatrixSpec
( spec
)
where
import Numeric.LinearAlgebra
import Test.Hspec
import ELynx.Data.MarkovProcess.RateMatrix
( exchFromListLower
, exchFromListUpper
)
es :: [Double]
es = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
exMLower :: Matrix R
exMLower = (5 >< 5)
[0, 1, 2, 4, 7, 1, 0, 3, 5, 8, 2, 3, 0, 6, 9, 4, 5, 6, 0, 10, 7, 8, 9, 10, 0]
exMUpper :: Matrix R
exMUpper = (5 >< 5)
[0, 1, 2, 3, 4, 1, 0, 5, 6, 7, 2, 5, 0, 8, 9, 3, 6, 8, 0, 10, 4, 7, 9, 10, 0]
spec :: Spec
spec = do
describe "exchFromListLower"
$ it "correctly converts to matrix from list"
$ exMLower
`shouldBe` exchFromListLower 5 es
describe "exchFromListUpper"
$ it "correctly converts to matrix from list"
$ exMUpper
`shouldBe` exchFromListUpper 5 es