-- Do not edit! Automatically created with doctest-extract from src/Data/Array/Comfort/Boxed/Dim2.hs {-# LINE 19 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} module DocTest.Data.Array.Comfort.Boxed.Dim2 where import qualified Test.DocTest.Driver as DocTest {-# LINE 20 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} import qualified Data.Array.Comfort.Boxed.Dim2 as Array2 import qualified Data.Array.Comfort.Boxed as Array import qualified Data.Array.Comfort.Shape as Shape import DocTest.Data.Array.Comfort.Storable (ShapeInt) import Data.Array.Comfort.Boxed (Array, (!)) import qualified Test.QuickCheck as QC genArray2 :: QC.Gen (Array (ShapeInt,ShapeInt) Char) genArray2 = do xs <- QC.arbitrary let n = length xs (k,m) <- if n == 0 then QC.elements [(,) 0, flip (,) 0] <*> QC.choose (1,20) else fmap (\m -> (div n m, m)) $ QC.choose (1,n) return $ Array.fromList (Shape.ZeroBased k, Shape.ZeroBased m) $ take (k*m) xs test :: DocTest.T () test = do DocTest.printPrefix "Data.Array.Comfort.Boxed.Dim2:44: " {-# LINE 44 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} DocTest.property( {-# LINE 44 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} QC.forAll genArray2 $ \xs -> let shape = Array.shape xs in Shape.size shape > 0 QC.==> QC.forAll (QC.elements $ Shape.indices shape) $ \(ix0,ix1) -> Array2.takeRow xs ix0 ! ix1 == xs!(ix0,ix1) ) DocTest.printPrefix "Data.Array.Comfort.Boxed.Dim2:70: " {-# LINE 70 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} DocTest.property( {-# LINE 70 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} QC.forAll genArray2 $ \xs -> Array2.toRows xs == Array.toList (Array2.toRowArray xs) ) DocTest.printPrefix "Data.Array.Comfort.Boxed.Dim2:88: " {-# LINE 88 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} DocTest.property( {-# LINE 88 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} \(QC.NonEmpty xs) ys -> let x = Array.vectorFromList (xs::[Char]) in let y = Array.vectorFromList (ys::[Char]) in QC.forAll (QC.elements $ Shape.indices $ Array.shape x) $ \ix -> Array2.takeRow (Array2.cartesian x y) ix == fmap ((,) (x!ix)) y ) DocTest.printPrefix "Data.Array.Comfort.Boxed.Dim2:107: " {-# LINE 107 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} DocTest.property( {-# LINE 107 "src/Data/Array/Comfort/Boxed/Dim2.hs" #-} QC.forAll genArray2 $ \xs -> xs == Array2.transpose (Array2.transpose xs) )