packages feed

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)
  )