Configuration

Trait providing methods and classes used to configure property checks provided by the the forAll methods of trait GeneratorDrivenPropertyChecks (for ScalaTest-style property checks) and the check methods of trait Checkers (for ScalaCheck-style property checks).

Companion:
object
class Object
trait Matchable
class Any

Type members

Classlikes

case class MaxDiscardedFactor(value: PosZDouble) extends PropertyCheckConfigParam

A PropertyCheckConfigParam that specifies how many generated values may be discarded, as a multiple of the successful attempts, before the property check is considered to be org.scalatest.prop.PropertyCheckResult.Exhausted.

A PropertyCheckConfigParam that specifies how many generated values may be discarded, as a multiple of the successful attempts, before the property check is considered to be org.scalatest.prop.PropertyCheckResult.Exhausted.

In GeneratorDrivenPropertyChecks, a property evaluation is discarded if it throws DiscardedEvaluationException, which is produced by a whenever clause that evaluates to false. For example, consider this ScalaTest property check:

// forAll defined in GeneratorDrivenPropertyChecks
forAll { (n: Int) =>
 whenever (n > 0) {
   doubleIt(n) should equal (n * 2)
 }
}

In the above code, whenever a non-positive n is passed, the property function will complete abruptly with DiscardedEvaluationException.

Similarly, in Checkers, a property evaluation is discarded if the expression to the left of ScalaCheck's ==> operator is false. Here's an example:

// forAll defined in Checkers
forAll { (n: Int) =>
 (n > 0) ==> doubleIt(n) == (n * 2)
}

For either kind of property check, MaxDiscardedFactor indicates the maximum fraction of total tests that may be discarded, relative to the number of successful tests. For example, if this is set to 4.0, and you are running 100 tests, it may discard up to 400 tries before considering the test to be org.scalatest.prop.PropertyCheckResult.Exhausted.

Value parameters:
value

the permitted number of discarded tests, as a multiple of successful ones.

case class MinSize(value: PosZInt) extends PropertyCheckConfigParam

A PropertyCheckConfigParam that specifies the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

A PropertyCheckConfigParam that specifies the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

case class MinSuccessful(value: PosInt) extends PropertyCheckConfigParam

A PropertyCheckConfigParam that specifies the minimum number of successful property evaluations required for the property to pass.

A PropertyCheckConfigParam that specifies the minimum number of successful property evaluations required for the property to pass.

Once this many evaluations have passed, the property will return PropertyCheckResult.Success.

sealed abstract class PropertyCheckConfigParam extends Product with Serializable

Abstract class defining a family of configuration parameters for property checks.

Abstract class defining a family of configuration parameters for property checks.

The subclasses of this abstract class are used to pass configuration information to the forAll methods of traits PropertyChecks (for ScalaTest-style property checks) and Checkers(for ScalaCheck-style property checks).

case class PropertyCheckConfiguration(minSuccessful: PosInt, maxDiscardedFactor: PosZDouble, minSize: PosZInt, sizeRange: PosZInt, workers: PosInt)

Describes the configuration to use when evaluating a property.

Describes the configuration to use when evaluating a property.

Value parameters:
maxDiscardedFactor

how many generated values may be discarded, as a multiple of the successful attempts, before the property check is considered to be org.scalatest.prop.PropertyCheckResult.Exhausted; see MaxDiscardedFactor

minSize

the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists); see MinSize

minSuccessful

the minimum number of successful property evaluations required for the property to pass; see MinSuccessful

sizeRange

the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists); see SizeRange

workers

number of worker threads to use when evaluating a property; see Workers

Companion:
object

Internal utility functions for configuration management.

Internal utility functions for configuration management.

Companion:
class
case class SizeRange(value: PosZInt) extends PropertyCheckConfigParam

A PropertyCheckConfigParam that (with minSize) specifies the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

A PropertyCheckConfigParam that (with minSize) specifies the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

Note that the size range is added to minSize in order to calculate the maximum size passed to ScalaCheck. Using a range allows compile-time checking of a non-negative number being specified.

case class Workers(value: PosInt) extends PropertyCheckConfigParam

A PropertyCheckConfigParam that specifies the number of worker threads to use when evaluating a property.

A PropertyCheckConfigParam that specifies the number of worker threads to use when evaluating a property.

Property evaluation runs on a single thread by default, but may run multiple threads if desired. If so, the evaluation will generally run faster. However, be careful not to use this if there is any risk of deadlocks, race conditions, or other hazards of multi-threaded code in evaluating this property or the code under test.

Value members

Concrete methods

Given some optional PropertyCheckConfigParams and a PropertyCheckConfiguration, compute the resulting Configuration.Parameter.

Given some optional PropertyCheckConfigParams and a PropertyCheckConfiguration, compute the resulting Configuration.Parameter.

This function deals with resolving the various forms of these configuration values, into a consistent form suitable for using in properties.

Duplicate PropertyCheckConfigParam entries are not permitted in the configParams list.

TODO: should this function be public? It feels like an internal implementation detail -- I think it should be private.

Value parameters:
c

a configuration object, describing how to run property evaluations

configParams

optionally, some parameters that differ from the provided c

Returns:

a fully-set-up Configuration.Parameter object, ready to evaluate properties with.

def maxDiscardedFactor(value: PosZDouble): MaxDiscardedFactor

Returns a MaxDiscardedFactor property check configuration parameter containing the passed value, which specifies the factor of discarded property evaluations allowed during property evaluation.

Returns a MaxDiscardedFactor property check configuration parameter containing the passed value, which specifies the factor of discarded property evaluations allowed during property evaluation.

def minSize(value: PosZInt): MinSize

Returns a MinSize property check configuration parameter containing the passed value, which specifies the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

Returns a MinSize property check configuration parameter containing the passed value, which specifies the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

def minSuccessful(value: PosInt): MinSuccessful

Returns a MinSuccessful property check configuration parameter containing the passed value, which specifies the minimum number of successful property evaluations required for the property to pass.

Returns a MinSuccessful property check configuration parameter containing the passed value, which specifies the minimum number of successful property evaluations required for the property to pass.

def sizeRange(value: PosZInt): SizeRange

Returns a SizeRange property check configuration parameter containing the passed value, that (with minSize) specifies the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

Returns a SizeRange property check configuration parameter containing the passed value, that (with minSize) specifies the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).

Note that the size range is added to minSize in order to calculate the maximum size passed to ScalaCheck. Using a range allows compile-time checking of a non-negative number being specified.

def workers(value: PosInt): Workers

Returns a Workers property check configuration parameter containing the passed value, which specifies the number of worker threads to use when evaluating a property.

Returns a Workers property check configuration parameter containing the passed value, which specifies the number of worker threads to use when evaluating a property.

Implicits

Implicits

Implicit PropertyCheckConfig value providing default configuration values.

Implicit PropertyCheckConfig value providing default configuration values.