trait GeneratorDrivenPropertyChecks extends Whenever with Configuration
Trait containing methods that faciliate property checks against generated data using ScalaCheck.
This trait contains forAll
methods that provide various ways to check properties using
generated data. Use of this trait requires that ScalaCheck be on the class path when you compile and run your tests.
It also contains a wherever
method that can be used to indicate a property need only hold whenever
some condition is true.
For an example of trait GeneratorDrivenPropertyChecks
in action, imagine you want to test this Fraction
class:
class Fraction(n: Int, d: Int) {
require(d != 0) require(d != Integer.MIN_VALUE) require(n != Integer.MIN_VALUE)
val numer = if (d < 0) -1 * n else n val denom = d.abs
override def toString = numer + " / " + denom }
To test the behavior of Fraction
, you could mix in or import the members of GeneratorDrivenPropertyChecks
(and Matchers
) and check a property using a forAll
method, like this:
forAll { (n: Int, d: Int) =>
whenever (d != 0 && d != Integer.MIN_VALUE && n != Integer.MIN_VALUE) {
val f = new Fraction(n, d)
if (n < 0 && d < 0 || n > 0 && d > 0) f.numer should be > 0 else if (n != 0) f.numer should be < 0 else f.numer should be === 0
f.denom should be > 0 } }
Trait GeneratorDrivenPropertyChecks
provides overloaded forAll
methods
that allow you to check properties using the data provided by a ScalaCheck generator. The simplest form
of forAll
method takes two parameter lists, the second of which is implicit. The first parameter list
is a "property" function with one to six parameters. An implicit Arbitrary
generator and Shrink
object needs to be supplied for
The forAll
method will pass each row of data to
each parameter type. ScalaCheck provides many implicit Arbitrary
generators for common types such as
Int
, String
, List[Float]
, etc., in its org.scalacheck.Arbitrary
companion
object. So long as you use types for which ScalaCheck already provides implicit Arbitrary
generators, you needn't
worry about them. Same for Shrink
objects, which are provided by ScalaCheck's org.scalacheck.Shrink
companion
object. Most often you can simply pass a property function to forAll
, and the compiler will grab the implicit
values provided by ScalaCheck.
The forAll
methods use the supplied Arbitrary
generators to generate example
arguments and pass them to the property function, and
generate a GeneratorDrivenPropertyCheckFailedException
if the function
completes abruptly for any exception that would normally cause a test to
fail in ScalaTest other than DiscardedEvaluationException
. An
DiscardedEvaluationException
,
which is thrown by the whenever
method (defined in trait Whenever
, which this trait extends) to indicate
a condition required by the property function is not met by a row
of passed data, will simply cause forAll
to discard that row of data.
Supplying argument names
You can optionally specify string names for the arguments passed to a property function, which will be used
in any error message when describing the argument values that caused the failure. To supply the names, place them in a comma separated list
in parentheses after forAll
before the property function (a curried form of forAll
). Here's
an example:
forAll ("a", "b") { (a: String, b: String) => a.length + b.length should equal ((a + b).length + 1) // Should fail }
When this fails, you'll see an error message that includes this:
Occurred when passed generated values ( a = "", b = "" )
When you don't supply argument names, the error message will say arg0
, arg1
, etc..
For example, this property check:
forAll { (a: String, b: String) => a.length + b.length should equal ((a + b).length + 1) // Should fail }
Will fail with an error message that includes:
Occurred when passed generated values ( arg0 = "", arg1 = "" )
Supplying generators
ScalaCheck provides a nice library of compositors that makes it easy to create your own custom generators. If you
want to supply custom generators to a property check, place them in parentheses after forAll
, before
the property check function (a curried form of forAll
).
For example, to create a generator of even integers between (and including) -2000 and 2000, you could write this:
import org.scalacheck.Gen
val evenInts = for (n <- Gen.choose(-1000, 1000)) yield 2 * n
Given this generator, you could use it on a property check like this:
forAll (evenInts) { (n) => n % 2 should equal (0) }
Custom generators are necessary when you want to pass data types not supported by ScalaCheck's arbitrary generators,
but are also useful when some of the values in the full range for the passed types are not valid. For such values you
would use a whenever
clause. In the Fraction
class shown above, neither the passed numerator or
denominator can be Integer.MIN_VALUE
, and the passed denominator cannot be zero. This shows up in the
whenever
clause like this:
whenever (d != 0 && d != Integer.MIN_VALUE
&& n != Integer.MIN_VALUE) { ...
You could in addition define generators for the numerator and denominator that only produce valid values, like this:
val validNumers = for (n <- Gen.choose(Integer.MIN_VALUE + 1, Integer.MAX_VALUE)) yield n val validDenoms = for (d <- validNumers if d != 0) yield d
You could then use them in the property check like this:
forAll (validNumers, validDenoms) { (n: Int, d: Int) =>
whenever (d != 0 && d != Integer.MIN_VALUE && n != Integer.MIN_VALUE) {
val f = new Fraction(n, d)
if (n < 0 && d < 0 || n > 0 && d > 0) f.numer should be > 0 else if (n != 0) f.numer should be < 0 else f.numer should be === 0
f.denom should be > 0 } }
Note that even if you use generators that don't produce the invalid values, you still need the
whenever
clause. The reason is that once a property fails, ScalaCheck will try and shrink
the values to the smallest values that still cause the property to fail. During this shrinking process ScalaCheck
may pass invalid values. The whenever
clause is still needed to guard against those values. (The
whenever
clause also clarifies to readers of the code exactly what the property is in a succinct
way, without requiring that they find and understand the generator definitions.)
Supplying both generators and argument names
If you want to supply both generators and named arguments, you can do so by providing a list of (<generator>, <name>)
pairs
in parentheses after forAll
, before the property function. Here's an example:
forAll ((validNumers, "n"), (validDenoms, "d")) { (n: Int, d: Int) =>
whenever (d != 0 && d != Integer.MIN_VALUE && n != Integer.MIN_VALUE) {
val f = new Fraction(n, d)
if (n < 0 && d < 0 || n > 0 && d > 0) f.numer should be > 0 else if (n != 0) f.numer should be < 0 else f.numer should be === 0
f.denom should be > 0 } }
Were this property check to fail, it would mention the names n and d in the error message, like this:
Occurred when passed generated values ( n = 17, d = 21 )
Property check configuration
The property checks performed by the forAll
methods of this trait can be flexibly configured via the services
provided by supertrait Configuration
. The five configuration parameters for property checks along with their
default values and meanings are described in the following table:
Configuration Parameter | Default Value | Meaning |
---|---|---|
minSuccessful | 100 | the minimum number of successful property evaluations required for the property to pass |
maxDiscarded | 500 | the maximum number of discarded property evaluations allowed during a property check |
minSize | 0 | the minimum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists) |
maxSize | 100 | the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists) |
workers | 1 | specifies the number of worker threads to use during property evaluation |
The forAll
methods of trait GeneratorDrivenPropertyChecks
each take a PropertyCheckConfiguration
object as an implicit parameter. This object provides values for each of the five configuration parameters. Trait Configuration
provides an implicit val
named generatorDrivenConfig
with each configuration parameter set to its default value.
If you want to set one or more configuration parameters to a different value for all property checks in a suite you can override this
val (or hide it, for example, if you are importing the members of the GeneratorDrivenPropertyChecks
companion object rather
than mixing in the trait.) For example, if
you want all parameters at their defaults except for minSize
and maxSize
, you can override
generatorDrivenConfig
, like this:
implicit override val generatorDrivenConfig = PropertyCheckConfiguration(minSize = 10, sizeRange = 10)
Or, hide it by declaring a variable of the same name in whatever scope you want the changed values to be in effect:
implicit val generatorDrivenConfig = PropertyCheckConfiguration(minSize = 10, sizeRange = 10)
In addition to taking a PropertyCheckConfiguration
object as an implicit parameter, the forAll
methods of trait
GeneratorDrivenPropertyChecks
also take a variable length argument list of PropertyCheckConfigParam
objects that you can use to override the values provided by the implicit PropertyCheckConfiguration
for a single forAll
invocation. For example, if you want to set minSuccessful
to 500 for just one particular forAll
invocation,
you can do so like this:
forAll (minSuccessful(500)) { (n: Int, d: Int) => ...
This invocation of forAll
will use 500 for minSuccessful
and whatever values are specified by the
implicitly passed PropertyCheckConfiguration
object for the other configuration parameters.
If you want to set multiple configuration parameters in this way, just list them separated by commas:
forAll (minSuccessful(500), maxDiscardedFactor(0.6)) { (n: Int, d: Int) => ...
If you are using an overloaded form of forAll
that already takes an initial parameter list, just
add the configuration parameters after the list of generators, names, or generator/name pairs, as in:
// If providing argument names forAll ("n", "d", minSuccessful(500), maxDiscarded(300)) { (n: Int, d: Int) => ...
// If providing generators forAll (validNumers, validDenoms, minSuccessful(500), maxDiscarded(300)) { (n: Int, d: Int) => ...
// If providing (<generators>, <name>) pairs forAll ((validNumers, "n"), (validDenoms, "d"), minSuccessful(500), maxDiscarded(300)) { (n: Int, d: Int) => ...
For more information, see the documentation for supertrait Configuration
.
- Alphabetic
- By Inheritance
- GeneratorDrivenPropertyChecks
- Configuration
- Whenever
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
case class
MaxDiscardedFactor(value: PosZDouble) extends PropertyCheckConfigParam with Product with Serializable
- Definition Classes
- Configuration
-
case class
MinSize(value: PosZInt) extends PropertyCheckConfigParam with Product with Serializable
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).- Definition Classes
- Configuration
- Exceptions thrown
IllegalArgumentException
if specifiedvalue
is less than zero.
-
case class
MinSuccessful(value: PosInt) extends PropertyCheckConfigParam with Product with Serializable
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.- Definition Classes
- Configuration
-
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 traitsPropertyChecks
(for ScalaTest-style property checks) andCheckers
(for ScalaCheck-style property checks).- Definition Classes
- Configuration
-
case class
PropertyCheckConfiguration(minSuccessful: PosInt = PosInt(10), maxDiscardedFactor: PosZDouble = PosZDouble(5.0), minSize: PosZInt = PosZInt(0), sizeRange: PosZInt = PosZInt(100), workers: PosInt = PosInt(1)) extends PropertyCheckConfigurable with Product with Serializable
- Definition Classes
- Configuration
-
case class
SizeRange(value: PosZInt) extends PropertyCheckConfigParam with Product with Serializable
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.
- Definition Classes
- Configuration
-
case class
Workers(value: PosInt) extends PropertyCheckConfigParam with Product with Serializable
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.- Definition Classes
- Configuration
- Exceptions thrown
IllegalArgumentException
if specifiedvalue
is less than or equal to zero.
-
class
ConfiguredPropertyCheck extends AnyRef
Performs a configured property checks by applying property check functions passed to its
apply
methods to arguments supplied by implicitly passed generators, modifying the values in thePropertyGenConfig
object passed implicitly to itsapply
methods with parameter values passed to its constructor.Performs a configured property checks by applying property check functions passed to its
apply
methods to arguments supplied by implicitly passed generators, modifying the values in thePropertyGenConfig
object passed implicitly to itsapply
methods with parameter values passed to its constructor.Instances of this class are returned by trait
GeneratorDrivenPropertyChecks
forAll
method that accepts a variable length argument list ofPropertyCheckConfigParam
objects. Thus it is used with functions of all six arities. Here are some examples:forAll (minSize(1), maxSize(10)) { (a: String) => a.length should equal ((a).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String) => a.length + b.length should equal ((a + b).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String) => a.length + b.length + c.length should equal ((a + b + c).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String, d: String) => a.length + b.length + c.length + d.length should equal ((a + b + c + d).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String, d: String, e: String) => a.length + b.length + c.length + d.length + e.length should equal ((a + b + c + d + e).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String, d: String, e: String, f: String) => a.length + b.length + c.length + d.length + e.length + f.length should equal ((a + b + c + d + e + f).length) }In the first example above, the
ConfiguredPropertyCheck
object is returned by:forAll (minSize(1), maxSize(10))
The code that follows is an invocation of one of the
ConfiguredPropertyCheck
apply
methods:{ (a: String) => a.length should equal ((a).length) }
-
case class
MaxDiscarded(value: Int) extends PropertyCheckConfigParam with Product with Serializable
A
PropertyCheckConfigParam
that specifies the maximum number of discarded property evaluations allowed during property evaluation.A
PropertyCheckConfigParam
that specifies the maximum number of discarded property evaluations allowed during property evaluation.In
GeneratorDrivenPropertyChecks
, a property evaluation is discarded if it throwsDiscardedEvaluationException
, which is produce bywhenever
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 withDiscardedEvaluationException
.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,
MaxDiscarded
indicates the maximum number of discarded evaluations that will be allowed. As soon as one past this number of evaluations indicates it needs to be discarded, the property check will fail.- Definition Classes
- Configuration
- Annotations
- @deprecated
- Deprecated
- Exceptions thrown
IllegalArgumentException
if specifiedvalue
is less than zero.
-
case class
MaxSize(value: Int) extends PropertyCheckConfigParam with Product with Serializable
A
PropertyCheckConfigParam
that 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 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 maximum size should be greater than or equal to the minimum size. This requirement is enforced by the
PropertyCheckConfig
constructor and theforAll
methods of traitsPropertyChecks
andCheckers
. In other words, it is enforced at the point both a maximum and minimum size are provided together.- Definition Classes
- Configuration
- Annotations
- @deprecated
- Deprecated
use SizeRange instead
- Exceptions thrown
IllegalArgumentException
if specifiedvalue
is less than zero.
-
case class
PropertyCheckConfig(minSuccessful: Int = 10, maxDiscarded: Int = 500, minSize: Int = 0, maxSize: Int = 100, workers: Int = 1) extends PropertyCheckConfigurable with Product with Serializable
Configuration object for property checks.
Configuration object for property checks.
The default values for the parameters are:
minSuccessful 100 maxDiscarded 500 minSize 0 maxSize 100 workers 1 - minSuccessful
the minimum number of successful property evaluations required for the property to pass.
- maxDiscarded
the maximum number of discarded property evaluations allowed during a property check
- 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).
- maxSize
the maximum size parameter to provide to ScalaCheck, which it will use when generating objects for which size matters (such as strings or lists).
- workers
specifies the number of worker threads to use during property evaluation
- Definition Classes
- Configuration
- Annotations
- @deprecated
- Deprecated
Use PropertyCheckConfiguration instead
- Exceptions thrown
IllegalArgumentException
if the specifiedminSuccessful
value is less than or equal to zero, the specifiedmaxDiscarded
value is less than zero, the specifiedminSize
value is less than zero, the specifiedmaxSize
value is less than zero, the specifiedminSize
is greater than the specified or default value ofmaxSize
, or the specifiedworkers
value is less than or equal to zero.
-
trait
PropertyCheckConfigurable extends AnyRef
- Definition Classes
- Configuration
- Annotations
- @deprecated
- Deprecated
Use PropertyCheckConfiguration directly instead.
Value Members
-
object
PropertyCheckConfiguration extends Serializable
- Definition Classes
- Configuration
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
implicit
def
PropertyCheckConfig2PropertyCheckConfiguration(p: PropertyCheckConfig): PropertyCheckConfiguration
Implicitly converts
PropertyCheckConfig
s toPropertyCheckConfiguration
, which enables a smoother upgrade path.Implicitly converts
PropertyCheckConfig
s toPropertyCheckConfiguration
, which enables a smoother upgrade path.- Definition Classes
- Configuration
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
forAll[A, B, C, D, E, F, ASSERTION](genAndNameA: (Gen[A], String), genAndNameB: (Gen[B], String), genAndNameC: (Gen[C], String), genAndNameD: (Gen[D], String), genAndNameE: (Gen[E], String), genAndNameF: (Gen[F], String), configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D, E, F) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], shrD: Shrink[D], shrE: Shrink[E], shrF: Shrink[F], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll ((famousLastWords, "a"), (famousLastWords, "b"), (famousLastWords, "c"), (famousLastWords, "d"), (famousLastWords, "e"), (famousLastWords, "f")) { (a: String, b: String, c: String, d: String, e: String, f: String) => a.length + b.length + c.length + d.length + e.length + f.length should equal ((a + b + c + d + e + f).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, F, ASSERTION](genA: Gen[A], genB: Gen[B], genC: Gen[C], genD: Gen[D], genE: Gen[E], genF: Gen[F], configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D, E, F) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], shrD: Shrink[D], shrE: Shrink[E], shrF: Shrink[F], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll (famousLastWords, famousLastWords, famousLastWords, famousLastWords, famousLastWords, famousLastWords) { (a: String, b: String, c: String, d: String, e: String, f: String) => a.length + b.length + c.length + d.length + e.length + f.length should equal ((a + b + c + d + e + f).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, F, ASSERTION](nameA: String, nameB: String, nameC: String, nameD: String, nameE: String, nameF: String, configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D, E, F) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], arbD: Arbitrary[D], shrD: Shrink[D], arbE: Arbitrary[E], shrE: Shrink[E], arbF: Arbitrary[F], shrF: Shrink[F], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Here's an example:
forAll ("a", "b", "c", "d", "e", "f") { (a: String, b: String, c: String, d: String, e: String, f: String) => a.length + b.length + c.length + d.length + e.length + f.length should equal ((a + b + c + d + e + f).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, F, ASSERTION](fun: (A, B, C, D, E, F) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], arbD: Arbitrary[D], shrD: Shrink[D], arbE: Arbitrary[E], shrE: Shrink[E], arbF: Arbitrary[F], shrF: Shrink[F], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Here's an example:
forAll { (a: String, b: String, c: String, d: String, e: String, f: String) => a.length + b.length + c.length + d.length + e.length + f.length should equal ((a + b + c + d + e + f).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, ASSERTION](genAndNameA: (Gen[A], String), genAndNameB: (Gen[B], String), genAndNameC: (Gen[C], String), genAndNameD: (Gen[D], String), genAndNameE: (Gen[E], String), configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D, E) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], shrD: Shrink[D], shrE: Shrink[E], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll ((famousLastWords, "a"), (famousLastWords, "b"), (famousLastWords, "c"), (famousLastWords, "d"), (famousLastWords, "e")) { (a: String, b: String, c: String, d: String, e: String) => a.length + b.length + c.length + d.length + e.length should equal ((a + b + c + d + e).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, ASSERTION](genA: Gen[A], genB: Gen[B], genC: Gen[C], genD: Gen[D], genE: Gen[E], configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D, E) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], shrD: Shrink[D], shrE: Shrink[E], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll (famousLastWords, famousLastWords, famousLastWords, famousLastWords, famousLastWords) { (a: String, b: String, c: String, d: String, e: String) => a.length + b.length + c.length + d.length + e.length should equal ((a + b + c + d + e).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, ASSERTION](nameA: String, nameB: String, nameC: String, nameD: String, nameE: String, configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D, E) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], arbD: Arbitrary[D], shrD: Shrink[D], arbE: Arbitrary[E], shrE: Shrink[E], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Here's an example:
forAll ("a", "b", "c", "d", "e") { (a: String, b: String, c: String, d: String, e: String) => a.length + b.length + c.length + d.length + e.length should equal ((a + b + c + d + e).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, E, ASSERTION](fun: (A, B, C, D, E) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], arbD: Arbitrary[D], shrD: Shrink[D], arbE: Arbitrary[E], shrE: Shrink[E], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Here's an example:
forAll { (a: String, b: String, c: String, d: String, e: String) => a.length + b.length + c.length + d.length + e.length should equal ((a + b + c + d + e).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, ASSERTION](genAndNameA: (Gen[A], String), genAndNameB: (Gen[B], String), genAndNameC: (Gen[C], String), genAndNameD: (Gen[D], String), configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], shrD: Shrink[D], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll ((famousLastWords, "a"), (famousLastWords, "b"), (famousLastWords, "c"), (famousLastWords, "d")) { (a: String, b: String, c: String, d: String) => a.length + b.length + c.length + d.length should equal ((a + b + c + d).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, ASSERTION](genA: Gen[A], genB: Gen[B], genC: Gen[C], genD: Gen[D], configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], shrD: Shrink[D], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll (famousLastWords, famousLastWords, famousLastWords, famousLastWords) { (a: String, b: String, c: String, d: String) => a.length + b.length + c.length + d.length should equal ((a + b + c + d).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, ASSERTION](nameA: String, nameB: String, nameC: String, nameD: String, configParams: PropertyCheckConfigParam*)(fun: (A, B, C, D) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], arbD: Arbitrary[D], shrD: Shrink[D], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Here's an example:
forAll ("a", "b", "c", "d") { (a: String, b: String, c: String, d: String) => a.length + b.length + c.length + d.length should equal ((a + b + c + d).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, D, ASSERTION](fun: (A, B, C, D) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], arbD: Arbitrary[D], shrD: Shrink[D], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Here's an example:
forAll { (a: String, b: String, c: String, d: String) => a.length + b.length + c.length + d.length should equal ((a + b + c + d).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, ASSERTION](genAndNameA: (Gen[A], String), genAndNameB: (Gen[B], String), genAndNameC: (Gen[C], String), configParams: PropertyCheckConfigParam*)(fun: (A, B, C) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll ((famousLastWords, "a"), (famousLastWords, "b"), (famousLastWords, "c")) { (a: String, b: String, c: String) => a.length + b.length + c.length should equal ((a + b + c).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, ASSERTION](genA: Gen[A], genB: Gen[B], genC: Gen[C], configParams: PropertyCheckConfigParam*)(fun: (A, B, C) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], shrC: Shrink[C], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll (famousLastWords, famousLastWords, famousLastWords) { (a: String, b: String, c: String) => a.length + b.length + c.length should equal ((a + b + c).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, ASSERTION](nameA: String, nameB: String, nameC: String, configParams: PropertyCheckConfigParam*)(fun: (A, B, C) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Here's an example:
forAll ("a", "b", "c") { (a: String, b: String, c: String) => a.length + b.length + c.length should equal ((a + b + c).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, C, ASSERTION](fun: (A, B, C) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], arbC: Arbitrary[C], shrC: Shrink[C], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Here's an example:
forAll { (a: String, b: String, c: String) => a.length + b.length + c.length should equal ((a + b + c).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, ASSERTION](genAndNameA: (Gen[A], String), genAndNameB: (Gen[B], String), configParams: PropertyCheckConfigParam*)(fun: (A, B) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll ((famousLastWords, "a"), (famousLastWords, "b")) { (a: String, b: String) => a.length + b.length should equal ((a + b).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, ASSERTION](genA: Gen[A], genB: Gen[B], configParams: PropertyCheckConfigParam*)(fun: (A, B) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], shrB: Shrink[B], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll (famousLastWords, famousLastWords) { (a: String, b: String) => a.length + b.length should equal ((a + b).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, ASSERTION](nameA: String, nameB: String, configParams: PropertyCheckConfigParam*)(fun: (A, B) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Here's an example:
forAll ("a", "b") { (a: String, b: String) => a.length + b.length should equal ((a + b).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, B, ASSERTION](fun: (A, B) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], arbB: Arbitrary[B], shrB: Shrink[B], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Here's an example:
forAll { (a: String, b: String) => a.length + b.length should equal ((a + b).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, ASSERTION](genAndNameA: (Gen[A], String), configParams: PropertyCheckConfigParam*)(fun: (A) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to named arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll ((famousLastWords, "a")) { (a: String) => a.length should equal ((a).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, ASSERTION](genA: Gen[A], configParams: PropertyCheckConfigParam*)(fun: (A) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, shrA: Shrink[A], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Performs a property check by applying the specified property check function to arguments supplied by the specified generators.
Here's an example:
import org.scalacheck.Gen
// Define your own string generator: val famousLastWords = for { s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work") } yield s
forAll (famousLastWords) { (a: String) => a.length should equal ((a).length) }- fun
the property check function to apply to the generated arguments
-
def
forAll[A, ASSERTION](nameA: String, configParams: PropertyCheckConfigParam*)(fun: (A) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function with the specified argument names to arguments supplied by implicitly passed generators.
Here's an example:
forAll ("a") { (a: String) => a.length should equal ((a).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll[A, ASSERTION](fun: (A) ⇒ ASSERTION)(implicit config: PropertyCheckConfigurable, arbA: Arbitrary[A], shrA: Shrink[A], asserting: CheckerAsserting[ASSERTION], prettifier: Prettifier, pos: Position): Result
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators.
Here's an example:
forAll { (a: String) => a.length should equal ((a).length) }
- fun
the property check function to apply to the generated arguments
-
def
forAll(configParams: PropertyCheckConfigParam*): ConfiguredPropertyCheck
Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators, modifying the values in the implicitly passed
PropertyGenConfig
object with explicitly passed parameter values.Performs a property check by applying the specified property check function to arguments supplied by implicitly passed generators, modifying the values in the implicitly passed
PropertyGenConfig
object with explicitly passed parameter values.This method creates a
ConfiguredPropertyCheck
object that has six overloaded apply methods that take a function. Thus it is used with functions of all six arities. Here are some examples:forAll (minSize(1), maxSize(10)) { (a: String) => a.length should equal ((a).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String) => a.length + b.length should equal ((a + b).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String) => a.length + b.length + c.length should equal ((a + b + c).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String, d: String) => a.length + b.length + c.length + d.length should equal ((a + b + c + d).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String, d: String, e: String) => a.length + b.length + c.length + d.length + e.length should equal ((a + b + c + d + e).length) }
forAll (minSize(1), maxSize(10)) { (a: String, b: String, c: String, d: String, e: String, f: String) => a.length + b.length + c.length + d.length + e.length + f.length should equal ((a + b + c + d + e + f).length) }- configParams
a variable length list of
PropertyCheckConfigParam
objects that should override corresponding values in thePropertyCheckConfiguration
implicitly passed to theapply
methods of theConfiguredPropertyCheck
object returned by this method.
-
implicit
val
generatorDrivenConfig: PropertyCheckConfiguration
Implicit
PropertyCheckConfig
value providing default configuration values.Implicit
PropertyCheckConfig
value providing default configuration values.- Definition Classes
- Configuration
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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.- Definition Classes
- Configuration
-
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).- Definition Classes
- Configuration
-
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.- Definition Classes
- Configuration
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
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.
- Definition Classes
- Configuration
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
whenever[T](condition: Boolean)(fun: ⇒ T)(implicit wa: WheneverAsserting[T]): Result
Evaluates the passed code block if the passed boolean condition is true, else throws
DiscardedEvaluationException
.Evaluates the passed code block if the passed boolean condition is true, else throws
DiscardedEvaluationException
.The
whenever
method can be used inside property check functions to discard invocations of the function with data for which it is known the property would fail. For example, given the followingFraction
class:class Fraction(n: Int, d: Int) {
require(d != 0) require(d != Integer.MIN_VALUE) require(n != Integer.MIN_VALUE)
val numer = if (d < 0) -1 * n else n val denom = d.abs
override def toString = numer + " / " + denom }import org.scalatest.prop.TableDrivenPropertyChecks._
val fractions = Table( ("n", "d"), ( 1, 2), ( -1, 2), ( 1, -2), ( -1, -2), ( 3, 1), ( -3, 1), ( -3, 0), ( 3, -1), ( 3, Integer.MIN_VALUE), (Integer.MIN_VALUE, 3), ( -3, -1) )Imagine you wanted to check a property against this class with data that includes some value that are rejected by the constructor, such as a denominator of zero, which should result in an
IllegalArgumentException
. You could usewhenever
to discard any rows in thefraction
that represent illegal arguments, like this:import org.scalatest.matchers.Matchers._
forAll (fractions) { (n: Int, d: Int) =>
whenever (d != 0 && d != Integer.MIN_VALUE && n != Integer.MIN_VALUE) {
val f = new Fraction(n, d)
if (n < 0 && d < 0 || n > 0 && d > 0) f.numer should be > 0 else if (n != 0) f.numer should be < 0 else f.numer should === (0)
f.denom should be > 0 } }In this example, rows 6, 8, and 9 have values that would cause a false to be passed to
whenever
. (For example, in row 6,d
is 0, which meansd
!=
0
will be false.) For those rows,whenever
will throwDiscardedEvaluationException
, which will cause theforAll
method to discard that row.- condition
the boolean condition that determines whether
whenever
will evaluate thefun
function (condition
is true) or throwsDiscardedEvaluationException
(condition
is false)- fun
the function to evaluate if the specified
condition
is true
- Definition Classes
- Whenever
-
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.- Definition Classes
- Configuration
Deprecated Value Members
-
def
maxDiscarded(value: Int): MaxDiscarded
Returns a
MaxDiscarded
property check configuration parameter containing the passed value, which specifies the maximum number of discarded property evaluations allowed during property evaluation.Returns a
MaxDiscarded
property check configuration parameter containing the passed value, which specifies the maximum number of discarded property evaluations allowed during property evaluation.- Definition Classes
- Configuration
- Annotations
- @deprecated
- Deprecated
use maxDiscardedFactor instead
- Exceptions thrown
IllegalArgumentException
if specifiedvalue
is less than zero.
-
def
maxSize(value: Int): MaxSize
Returns a
MaxSize
property check configuration parameter containing the passed value, which 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
MaxSize
property check configuration parameter containing the passed value, which 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 maximum size should be greater than or equal to the minimum size. This requirement is enforced by the
PropertyCheckConfig
constructor and theforAll
methods of traitsPropertyChecks
andCheckers
. In other words, it is enforced at the point both a maximum and minimum size are provided together.- Definition Classes
- Configuration
- Annotations
- @deprecated
- Deprecated
use SizeRange instead
- Exceptions thrown
IllegalArgumentException
if specifiedvalue
is less than zero.