massiv-test-1.0.0.0: Library that contains generators, properties and tests for Massiv Array Library.
Safe HaskellNone
LanguageHaskell2010

Test.Massiv.Core.Index

Synopsis

Documentation

newtype DimIx ix Source #

Dimension that is always within bounds of an index

Constructors

DimIx Dim 

Instances

Instances details
Show (DimIx ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

showsPrec :: Int -> DimIx ix -> ShowS #

show :: DimIx ix -> String #

showList :: [DimIx ix] -> ShowS #

Index ix => Arbitrary (DimIx ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

arbitrary :: Gen (DimIx ix) #

shrink :: DimIx ix -> [DimIx ix] #

newtype SzNE ix Source #

Size that will result in a non-empty array.

prop > (neSz :: Sz1) -> totalElem (unSzNE neSz) > 0 prop > (neSz :: Sz2) -> totalElem (unSzNE neSz) > 0 prop > (neSz :: Sz3) -> totalElem (unSzNE neSz) > 0 prop > (neSz :: Sz4) -> totalElem (unSzNE neSz) > 0 prop > (neSz :: Sz5) -> totalElem (unSzNE neSz) > 0

Constructors

SzNE 

Fields

Instances

Instances details
Index ix => Show (SzNE ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

showsPrec :: Int -> SzNE ix -> ShowS #

show :: SzNE ix -> String #

showList :: [SzNE ix] -> ShowS #

(Index ix, Arbitrary ix) => Arbitrary (SzNE ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

arbitrary :: Gen (SzNE ix) #

shrink :: SzNE ix -> [SzNE ix] #

data SzIx ix Source #

Non-empty size together with an index that is within bounds of that index.

Constructors

SzIx (Sz ix) ix 

Instances

Instances details
Index ix => Show (SzIx ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

showsPrec :: Int -> SzIx ix -> ShowS #

show :: SzIx ix -> String #

showList :: [SzIx ix] -> ShowS #

(Index ix, Arbitrary ix) => Arbitrary (SzIx ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

arbitrary :: Gen (SzIx ix) #

shrink :: SzIx ix -> [SzIx ix] #

newtype SzTiny ix Source #

Constructors

SzTiny 

Fields

Instances

Instances details
Eq ix => Eq (SzTiny ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

(==) :: SzTiny ix -> SzTiny ix -> Bool #

(/=) :: SzTiny ix -> SzTiny ix -> Bool #

Index ix => Show (SzTiny ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

showsPrec :: Int -> SzTiny ix -> ShowS #

show :: SzTiny ix -> String #

showList :: [SzTiny ix] -> ShowS #

(Arbitrary ix, Index ix) => Arbitrary (SzTiny ix) Source # 
Instance details

Defined in Test.Massiv.Core.Index

Methods

arbitrary :: Gen (SzTiny ix) #

shrink :: SzTiny ix -> [SzTiny ix] #

ixToList :: Index ix => ix -> [Int] Source #

Convert an index to a list

Since: 0.1.0

arbitraryIx1 :: Gen Int Source #

Generators are quadratic in QuickCheck. Unlike built-in Arbitrary instance for Int, this one generates smaller integers

Since: 0.1.0

toIx :: forall ix' ix. (Dimensions ix' ~ Dimensions ix, Index ix', Index ix) => ix -> ix' Source #

A fairly slow way to convert from one arbitrary index to another of the same dimension

Since: 0.1.0

Specs

Index

ixSpec :: forall ix. (Typeable (Lower ix), Arbitrary (Lower ix), Typeable ix, Index ix, Arbitrary ix, IsIndexDimension ix (Dimensions ix)) => Spec Source #

ix2UpSpec :: forall ix. (Index ix, Index (Lower ix), Arbitrary ix, Arbitrary (Lower ix), Typeable (Lower ix)) => Spec Source #

ixNumSpec :: forall ix. (Typeable ix, Num ix, Index ix, Arbitrary ix) => Spec Source #

Spec that validates the Num instance for any `Index ix => ix`

Size

szNumSpec :: forall ix. (Typeable ix, Num ix, Index ix, Arbitrary ix) => Spec Source #

Spec that validates the Num instance for any `Index ix => Sz ix`

szSpec :: forall ix. (Index ix, Arbitrary ix) => Spec Source #

Re-exports

Orphan instances

Function Ix2 Source # 
Instance details

Methods

function :: (Ix2 -> b) -> Ix2 :-> b #

Function Ix3 Source # 
Instance details

Methods

function :: (Ix3 -> b) -> Ix3 :-> b #

Function Ix4 Source # 
Instance details

Methods

function :: (Ix4 -> b) -> Ix4 :-> b #

Function Ix5 Source # 
Instance details

Methods

function :: (Ix5 -> b) -> Ix5 :-> b #

Arbitrary Ix2 Source # 
Instance details

Methods

arbitrary :: Gen Ix2 #

shrink :: Ix2 -> [Ix2] #

Arbitrary Ix3 Source # 
Instance details

Methods

arbitrary :: Gen Ix3 #

shrink :: Ix3 -> [Ix3] #

Arbitrary Ix4 Source # 
Instance details

Methods

arbitrary :: Gen Ix4 #

shrink :: Ix4 -> [Ix4] #

Arbitrary Ix5 Source # 
Instance details

Methods

arbitrary :: Gen Ix5 #

shrink :: Ix5 -> [Ix5] #

Arbitrary Dim Source # 
Instance details

Methods

arbitrary :: Gen Dim #

shrink :: Dim -> [Dim] #

Arbitrary Ix0 Source # 
Instance details

Methods

arbitrary :: Gen Ix0 #

shrink :: Ix0 -> [Ix0] #

CoArbitrary Ix2 Source # 
Instance details

Methods

coarbitrary :: Ix2 -> Gen b -> Gen b #

CoArbitrary Ix3 Source # 
Instance details

Methods

coarbitrary :: Ix3 -> Gen b -> Gen b #

CoArbitrary Ix4 Source # 
Instance details

Methods

coarbitrary :: Ix4 -> Gen b -> Gen b #

CoArbitrary Ix5 Source # 
Instance details

Methods

coarbitrary :: Ix5 -> Gen b -> Gen b #

Arbitrary e => Arbitrary (Border e) Source # 
Instance details

Methods

arbitrary :: Gen (Border e) #

shrink :: Border e -> [Border e] #

(Index ix, Arbitrary ix) => Arbitrary (Stride ix) Source # 
Instance details

Methods

arbitrary :: Gen (Stride ix) #

shrink :: Stride ix -> [Stride ix] #

(Index ix, Arbitrary ix) => Arbitrary (Sz ix) Source # 
Instance details

Methods

arbitrary :: Gen (Sz ix) #

shrink :: Sz ix -> [Sz ix] #