comfort-array-0.5.5: test/DocTest/Data/Array/Comfort/Storable.hs
-- Do not edit! Automatically created with doctest-extract from src/Data/Array/Comfort/Storable.hs
{-# LINE 100 "src/Data/Array/Comfort/Storable.hs" #-}
module DocTest.Data.Array.Comfort.Storable where
import Test.DocTest.Base
import qualified Test.DocTest.Driver as DocTest
{-# LINE 101 "src/Data/Array/Comfort/Storable.hs" #-}
import qualified Data.Array.Comfort.Storable as Array
import qualified Data.Array.Comfort.Shape as Shape
import Data.Array.Comfort.Storable (Array, (!))
import qualified Test.QuickCheck as QC
import Test.ChasingBottoms.IsBottom (isBottom)
import Control.Applicative ((<$>))
import qualified Data.IntSet as IntSet
import qualified Data.Set as Set
import Data.Complex (Complex((:+)))
import Data.Word (Word8, Word16)
type ShapeInt = Shape.ZeroBased Int
type X = Shape.Element
shapeInt :: Int -> ShapeInt
shapeInt = Shape.ZeroBased
genArray :: QC.Gen (Array ShapeInt Word16)
genArray = Array.vectorFromList <$> QC.arbitrary
infix 4 ==?
(==?) :: a -> a -> (a,a)
(==?) = (,)
forAllNonEmpty :: (Eq b) => (Array ShapeInt Word16 -> (b,b)) -> QC.Property
forAllNonEmpty f =
QC.forAll genArray $ \xs ->
case f xs of
(resultArray,resultList) ->
if Array.shape xs == Shape.ZeroBased 0
then isBottom resultArray
else resultArray == resultList
test :: DocTest.T ()
test = do
DocTest.printPrefix "Data.Array.Comfort.Storable:151: "
{-# LINE 151 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.example(
{-# LINE 151 "src/Data/Array/Comfort/Storable.hs" #-}
Array.fromList (shapeInt 5) ['a'..]
)
[ExpectedLine [LineChunk "StorableArray.fromList (ZeroBased {zeroBasedSize = 5}) \"abcde\""]]
DocTest.printPrefix "Data.Array.Comfort.Storable:170: "
{-# LINE 170 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.example(
{-# LINE 170 "src/Data/Array/Comfort/Storable.hs" #-}
Array.fromTuple ('a',('b','c')) :: Array (Shape.NestedTuple Shape.TupleIndex (X,(X,X))) Char
)
[ExpectedLine [LineChunk "StorableArray.fromList (NestedTuple {getNestedTuple = (Element 0,(Element 1,Element 2))}) \"abc\""]]
DocTest.printPrefix "Data.Array.Comfort.Storable:173: "
{-# LINE 173 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.example(
{-# LINE 173 "src/Data/Array/Comfort/Storable.hs" #-}
let arr :: Array (Shape.NestedTuple Shape.TupleAccessor (X,(X,X))) Char
arr = Array.fromTuple ('a',('b','c'))
in (arr ! fst, arr ! (fst.snd))
)
[ExpectedLine [LineChunk "('a','b')"]]
DocTest.printPrefix "Data.Array.Comfort.Storable:196: "
{-# LINE 196 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.example(
{-# LINE 196 "src/Data/Array/Comfort/Storable.hs" #-}
let arr = Array.fromRecord ('a' :+ 'b') in
let (real:+imag) = Shape.indexRecordFromShape $ Array.shape arr in
(arr ! real, arr ! imag)
)
[ExpectedLine [LineChunk "('a','b')"]]
DocTest.printPrefix "Data.Array.Comfort.Storable:338: "
{-# LINE 338 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.example(
{-# LINE 338 "src/Data/Array/Comfort/Storable.hs" #-}
Array.takeSet (Set.fromList [0,2,4,7,13]) (Array.vectorFromList [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3::Word8])
)
[ExpectedLine [LineChunk "StorableArray",WildCardChunk,LineChunk " (",WildCardChunk,LineChunk " [0,2,4,7,13]) [3,4,5,6,7]"]]
DocTest.printPrefix "Data.Array.Comfort.Storable:348: "
{-# LINE 348 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.example(
{-# LINE 348 "src/Data/Array/Comfort/Storable.hs" #-}
Array.takeIntSet (IntSet.fromList [0,2,4,7,13]) (Array.vectorFromList [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3::Word8])
)
[ExpectedLine [LineChunk "StorableArray",WildCardChunk,LineChunk " (",WildCardChunk,LineChunk " [0,2,4,7,13]) [3,4,5,6,7]"]]
DocTest.printPrefix "Data.Array.Comfort.Storable:393: "
{-# LINE 393 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.property(
{-# LINE 393 "src/Data/Array/Comfort/Storable.hs" #-}
forAllNonEmpty $ \xs -> Array.minimum xs ==? minimum (Array.toList xs)
)
DocTest.printPrefix "Data.Array.Comfort.Storable:401: "
{-# LINE 401 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.property(
{-# LINE 401 "src/Data/Array/Comfort/Storable.hs" #-}
forAllNonEmpty $ \xs -> Array.maximum xs ==? maximum (Array.toList xs)
)
DocTest.printPrefix "Data.Array.Comfort.Storable:413: "
{-# LINE 413 "src/Data/Array/Comfort/Storable.hs" #-}
DocTest.property(
{-# LINE 413 "src/Data/Array/Comfort/Storable.hs" #-}
forAllNonEmpty $ \xs -> Array.limits xs ==? (Array.minimum xs, Array.maximum xs)
)