extrapolate-0.0.1: generalize counter-examples of test properties

Copyright(c) 2017 Rudy Matela
License3-Clause BSD (see the file LICENSE)
MaintainerRudy Matela <rudy@matela.com.br>
Safe HaskellNone
LanguageHaskell2010

Test.Extrapolate.Core

Description

This module is part of Extrapolate, a library for generalization of counter-examples.

This is the core of extrapolate.

Synopsis

Documentation

class (Listable a, Typeable a, Show a) => Generalizable a where Source #

Minimal complete definition

expr

Methods

expr :: a -> Expr Source #

useful :: a -> [Expr] Source #

instances :: a -> Instances -> Instances Source #

Instances

Generalizable Bool Source # 

Methods

expr :: Bool -> Expr Source #

useful :: Bool -> [Expr] Source #

instances :: Bool -> Instances -> Instances Source #

Generalizable Char Source # 

Methods

expr :: Char -> Expr Source #

useful :: Char -> [Expr] Source #

instances :: Char -> Instances -> Instances Source #

Generalizable Int Source # 

Methods

expr :: Int -> Expr Source #

useful :: Int -> [Expr] Source #

instances :: Int -> Instances -> Instances Source #

Generalizable Integer Source # 

Methods

expr :: Integer -> Expr Source #

useful :: Integer -> [Expr] Source #

instances :: Integer -> Instances -> Instances Source #

Generalizable () Source # 

Methods

expr :: () -> Expr Source #

useful :: () -> [Expr] Source #

instances :: () -> Instances -> Instances Source #

Generalizable a => Generalizable [a] Source # 

Methods

expr :: [a] -> Expr Source #

useful :: [a] -> [Expr] Source #

instances :: [a] -> Instances -> Instances Source #

Generalizable a => Generalizable (Maybe a) Source # 

Methods

expr :: Maybe a -> Expr Source #

useful :: Maybe a -> [Expr] Source #

instances :: Maybe a -> Instances -> Instances Source #

(Generalizable a, Generalizable b) => Generalizable (a, b) Source # 

Methods

expr :: (a, b) -> Expr Source #

useful :: (a, b) -> [Expr] Source #

instances :: (a, b) -> Instances -> Instances Source #

(Generalizable a, Generalizable b, Generalizable c) => Generalizable (a, b, c) Source # 

Methods

expr :: (a, b, c) -> Expr Source #

useful :: (a, b, c) -> [Expr] Source #

instances :: (a, b, c) -> Instances -> Instances Source #

this :: (Typeable a, Listable a, Show a) => String -> a -> (Instances -> Instances) -> Instances -> Instances Source #

these :: (Typeable a, Listable a, Show a) => String -> a -> [Expr] -> (Instances -> Instances) -> Instances -> Instances Source #

usefuns :: Typeable a => a -> [Expr] -> Instances Source #

(+++) :: Ord a => [a] -> [a] -> [a] infixr 5 Source #

data Option Source #

Constructors

MaxTests Int 
ExtraInstances Instances 
MaxConditionSize Int 

Instances

options :: Testable a => a -> Options Source #

data WithOption a Source #

Constructors

With 

Fields

Instances

Testable a => Testable (WithOption a) Source # 

Methods

resultiers :: WithOption a -> [[([Expr], Bool)]]

($-|) :: WithOption a -> [Expr] -> Bool

tinstances :: WithOption a -> Instances

options :: WithOption a -> Options Source #

extraInstances :: Testable a => a -> Instances Source #

counterExampleGen :: Testable a => Int -> a -> Maybe ([Expr], Maybe [Expr]) Source #

counterExampleGens :: Testable a => Int -> a -> Maybe ([Expr], [[Expr]]) Source #

generalizationsCE :: Testable a => Int -> a -> [Expr] -> [[Expr]] Source #

generalizationsCEC :: Testable a => Int -> a -> [Expr] -> [(Expr, [Expr])] Source #

generalizationsCounts :: Testable a => Int -> a -> [Expr] -> [([Expr], Int)] Source #

conditionalGeneralization :: Testable a => Int -> a -> [Expr] -> [Expr] -> Maybe ([Expr], [Expr]) Source #

matchList :: [Expr] -> [Expr] -> Maybe Binds Source #

List matches of lists of expressions if possible

[0,1]   `matchList` [x,y]   = Just [x=0, y=1]
[0,1+2] `matchList` [x,y+y] = Nothing

newMatches :: [Expr] -> [Expr] -> Maybe Binds Source #

class Testable a where Source #

Minimal complete definition

resultiers, ($-|), tinstances

Methods

options :: a -> Options Source #

Instances

Testable Bool Source # 

Methods

resultiers :: Bool -> [[([Expr], Bool)]]

($-|) :: Bool -> [Expr] -> Bool

tinstances :: Bool -> Instances

options :: Bool -> Options Source #

Testable a => Testable (WithOption a) Source # 

Methods

resultiers :: WithOption a -> [[([Expr], Bool)]]

($-|) :: WithOption a -> [Expr] -> Bool

tinstances :: WithOption a -> Instances

options :: WithOption a -> Options Source #

(Testable b, Generalizable a, Listable a) => Testable (a -> b) Source # 

Methods

resultiers :: (a -> b) -> [[([Expr], Bool)]]

($-|) :: (a -> b) -> [Expr] -> Bool

tinstances :: (a -> b) -> Instances

options :: (a -> b) -> Options Source #

results :: Testable a => a -> [([Expr], Bool)] Source #

areInstancesOf :: [Expr] -> [Expr] -> Bool Source #

expressionsT :: [Expr] -> [[Expr]] Source #