lapack-0.5.2: test/DocTest/Numeric/LAPACK/Permutation/Private.hs
-- Do not edit! Automatically created with doctest-extract from src/Numeric/LAPACK/Permutation/Private.hs
{-# LINE 49 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
module DocTest.Numeric.LAPACK.Permutation.Private where
import qualified Test.DocTest.Driver as DocTest
{-# LINE 50 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
import qualified Test.QuickCheck as QC
import Test.Permutation (genPerm, genPivots)
import qualified Numeric.LAPACK.Permutation as Perm
import Numeric.LAPACK.Permutation
(Permutation, determinant, multiply, transpose)
import Numeric.LAPACK.Matrix (ShapeInt)
import Data.Semigroup ((<>))
import Control.Applicative (liftA2)
genPerm2 :: QC.Gen (Permutation ShapeInt, Permutation ShapeInt)
genPerm2 = do
nat <- QC.arbitrary
liftA2 (,) (genPerm nat) (genPerm nat)
test :: DocTest.T ()
test = do
DocTest.printPrefix "Numeric.LAPACK.Permutation.Private:111: "
{-# LINE 111 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
DocTest.property(
{-# LINE 111 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
QC.forAll QC.arbitraryBoundedEnum $ \inv -> QC.forAll (QC.arbitrary >>= genPivots) $ \xs -> xs == Perm.toPivots inv (Perm.fromPivots inv xs)
)
DocTest.printPrefix "Numeric.LAPACK.Permutation.Private:194: "
{-# LINE 194 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
DocTest.property(
{-# LINE 194 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
QC.forAll genPerm2 $ \(p0,p1) -> determinant (multiply p0 p1) == determinant p0 <> determinant p1
)
DocTest.printPrefix "Numeric.LAPACK.Permutation.Private:223: "
{-# LINE 223 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
DocTest.property(
{-# LINE 223 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
QC.forAll genPerm2 $ \(p0,p1) -> transpose (multiply p0 p1) == multiply (transpose p1) (transpose p0)
)