falsify-0.4.0: Property-based testing with internal integrated shrinking
Safe HaskellNone
LanguageHaskell2010

Test.Falsify.Marked

Description

Marked elements

Intended for qualified import.

import Test.Falsify
import qualified Test.Falsify.Marked as Marked
Synopsis

Documentation

data Mark Source #

Should an element in a container be kept or dropped?

See also Marked.

Constructors

Keep 
Drop 

Instances

Instances details
Show Mark Source # 
Instance details

Defined in Test.Falsify.Marked

Methods

showsPrec :: Int -> Mark -> ShowS #

show :: Mark -> String #

showList :: [Mark] -> ShowS #

Eq Mark Source # 
Instance details

Defined in Test.Falsify.Marked

Methods

(==) :: Mark -> Mark -> Bool #

(/=) :: Mark -> Mark -> Bool #

Ord Mark Source # 
Instance details

Defined in Test.Falsify.Marked

Methods

compare :: Mark -> Mark -> Ordering #

(<) :: Mark -> Mark -> Bool #

(<=) :: Mark -> Mark -> Bool #

(>) :: Mark -> Mark -> Bool #

(>=) :: Mark -> Mark -> Bool #

max :: Mark -> Mark -> Mark #

min :: Mark -> Mark -> Mark #

data Marked (f :: Type -> Type) a Source #

Marked element in a container

Marking elements can be a useful technique for dropping elements from a container.

  • Locally marking elements to Drop makes it possible to enforce some global constraints about minimum number of required elements before actually dropping them (see selectAllKept). Example: list.
  • For containers where we cannot remove random elements, the marks can be used for "outwards propagation": if this element is dropped, then those elements must also be dropped. Example: tree.

Constructors

Marked 

Fields

Instances

Instances details
Show (f a) => Show (Marked f a) Source # 
Instance details

Defined in Test.Falsify.Marked

Methods

showsPrec :: Int -> Marked f a -> ShowS #

show :: Marked f a -> String #

showList :: [Marked f a] -> ShowS #

Eq (f a) => Eq (Marked f a) Source # 
Instance details

Defined in Test.Falsify.Marked

Methods

(==) :: Marked f a -> Marked f a -> Bool #

(/=) :: Marked f a -> Marked f a -> Bool #

Ord (f a) => Ord (Marked f a) Source # 
Instance details

Defined in Test.Falsify.Marked

Methods

compare :: Marked f a -> Marked f a -> Ordering #

(<) :: Marked f a -> Marked f a -> Bool #

(<=) :: Marked f a -> Marked f a -> Bool #

(>) :: Marked f a -> Marked f a -> Bool #

(>=) :: Marked f a -> Marked f a -> Bool #

max :: Marked f a -> Marked f a -> Marked f a #

min :: Marked f a -> Marked f a -> Marked f a #

Generation

selectAllKept :: (Traversable t, Selective f) => t (Marked f a) -> f (t (Maybe a)) Source #

Traverse the argument, generating all values marked Keep, and replacing all values marked Drop by Nothing

Queries

countKept :: forall t (f :: Type -> Type) a. Foldable t => t (Marked f a) -> Word Source #

Count how many elements will be kept

shouldKeep :: Marked f a -> Maybe (f a) Source #

The element if it should be kept