packages feed

lapack-0.3.2: test/DocTest/Numeric/LAPACK/Example/DividedDifference.hs

-- Do not edit! Automatically created with doctest-extract from src/Numeric/LAPACK/Example/DividedDifference.hs
{-# LINE 29 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}

module DocTest.Numeric.LAPACK.Example.DividedDifference where

import qualified Test.DocTest.Driver as DocTest

{-# LINE 30 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
import     qualified Test.Utility as Util
import     Test.Utility (approxArray)

import     qualified Numeric.LAPACK.Vector as Vector
import     Numeric.LAPACK.Example.DividedDifference (dividedDifferencesMatrix)
import     Numeric.LAPACK.Matrix (ShapeInt, (#+#))
import     Numeric.LAPACK.Vector ((|+|))

import     qualified Data.Array.Comfort.Storable as Array

import     qualified Test.QuickCheck as QC

import     Control.Monad (liftM2)
import     Data.Tuple.HT (mapPair)
import     Data.Semigroup ((<>))

type     Vector = Vector.Vector ShapeInt Float

genDD     :: QC.Gen (Vector, (Vector, Vector))
genDD     = do
       (ys0,ys1) <-
          fmap (mapPair (Vector.autoFromList, Vector.autoFromList) .
                unzip . take 10) $
          QC.listOf $ liftM2 (,) (Util.genElement 10) (Util.genElement 10)
       xs <- Util.genDistinct 10 10 $ Array.shape ys0
       return (xs,(ys0,ys1))

test :: DocTest.T ()
test = do
 DocTest.printPrefix "Numeric.LAPACK.Example.DividedDifference:77: "
{-# LINE 77 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
 DocTest.property
{-# LINE 77 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
     (QC.forAll genDD $ \(xs, (ys0,ys1)) -> approxArray (dividedDifferencesMatrix xs (ys0|+|ys1)) (dividedDifferencesMatrix xs ys0 #+# dividedDifferencesMatrix xs ys1))
 DocTest.printPrefix "Numeric.LAPACK.Example.DividedDifference:78: "
{-# LINE 78 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
 DocTest.property
{-# LINE 78 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
     (QC.forAll genDD $ \(xs, (ys0,ys1)) -> approxArray (dividedDifferencesMatrix xs (Vector.mul ys0 ys1)) (dividedDifferencesMatrix xs ys0 <> dividedDifferencesMatrix xs ys1))