llvm-extra-0.13.1: test/DocTest/LLVM/Extra/Nice/Value/Vector.hs
-- Do not edit! Automatically created with doctest-extract from src/LLVM/Extra/Nice/Value/Vector.hs
{-# LINE 52 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
module DocTest.LLVM.Extra.Nice.Value.Vector where
import Test.DocTest.Base
import qualified Test.DocTest.Driver as DocTest
{-# LINE 53 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
import Test.RunNice (sharedRun, run)
import qualified LLVM.Extra.Nice.Value.Vector as Vector
import qualified LLVM.Extra.Nice.Value as NV
import qualified LLVM.Core as LLVM
import Type.Data.Num.Decimal (D4, D8)
import qualified Data.Foldable as Fold
import qualified Data.List as List
import qualified Data.NonEmpty as NonEmpty
import Control.Applicative (liftA2)
import Data.Int (Int32)
import Test.QuickCheck ((===))
type N = D8
type VectorN = LLVM.Vector N
test :: DocTest.T ()
test = do
DocTest.printPrefix "LLVM.Extra.Nice.Value.Vector:149: "
{-# LINE 149 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
DocTest.example(
{-# LINE 149 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
run Vector.replicate 42 :: LLVM.Vector D4 Int32
)
[ExpectedLine [LineChunk "Vector [42,42,42,42]"]]
DocTest.printPrefix "LLVM.Extra.Nice.Value.Vector:158: "
{-# LINE 158 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
DocTest.example(
{-# LINE 158 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
run (NV.uncurry3 Vector.replicateSegmented) (LLVM.consVector False False True False False True False False, 8, LLVM.consVector 7 6 5 4 3 2 1 0) :: LLVM.Vector D8 Int32
)
[ExpectedLine [LineChunk "Vector [8,8,5,5,5,2,2,2]"]]
DocTest.printPrefix "LLVM.Extra.Nice.Value.Vector:161: "
{-# LINE 161 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
DocTest.property(
{-# LINE 161 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
sharedRun (NV.uncurry3 Vector.replicateSegmented) $ \replicateSegmented ->
\bs x xs ->
NonEmpty.tail
(NonEmpty.scanl (\lastX (b,xi) -> if b then xi else lastX)
x (liftA2 (,) bs xs))
===
replicateSegmented (bs, x, xs :: VectorN Int32)
)
DocTest.printPrefix "LLVM.Extra.Nice.Value.Vector:179: "
{-# LINE 179 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
DocTest.property(
{-# LINE 179 "src/LLVM/Extra/Nice/Value/Vector.hs" #-}
sharedRun (NV.uncurry (\d -> Vector.iterate (NV.add d))) $ \iter ->
\d x ->
List.take 8 (List.iterate (d+) x)
===
Fold.toList (iter (d,x) :: LLVM.Vector D8 Int32)
)