# package quick

`import "testing/quick"`

Package quick implements utility functions to help with black box testing.

The testing/quick package is frozen and is not accepting new features.

quick.go

## func Check

Check looks for an input to f, any function that returns bool, such that f returns false. It calls f repeatedly, with arbitrary values for each argument. If f returns false on a given input, Check returns that input as a *CheckError. For example:

    func TestOddMultipleOfThree(t *testing.T) {
    	f := func(x int) bool {
    		y := OddMultipleOfThree(x)
    		return y%2 == 1 && y%3 == 0
    	}
    	if err := quick.Check(f, nil); err != nil {
    		t.Error(err)
    	}
    }

## func CheckEqual

CheckEqual looks for an input on which f and g return different results. It calls f and g repeatedly with arbitrary values for each argument. If f and g return different answers, CheckEqual returns a *CheckEqualError describing the input and the outputs.

## func Value

Value returns an arbitrary value of the given type. If the type implements the Generator interface, that will be used. Note: To create arbitrary values for structs, all the fields must be exported.

## type CheckEqualError

A CheckEqualError is the result CheckEqual finding an error.

### func (*CheckEqualError) Error

## type CheckError

A CheckError is the result of Check finding an error.

### func (*CheckError) Error

## type Config

A Config structure contains options for running a test.

## type Generator

A Generator can generate random values of its own type.

## type SetupError

A SetupError is the result of an error in the way that check is being used, independent of the functions being tested.

### func (SetupError) Error