PropertyCheckResult

Companion:
class
trait Sum
trait Mirror
class Object
trait Matchable
class Any

Type members

Classlikes

case class Exhausted(succeeded: Long, discarded: Long, names: List[String], argsPassed: List[PropertyArgument], initSeed: Long) extends PropertyCheckResult

This Property Check was inconclusive -- after running for the desired number of times, so many attempts were discarded that the property as defined should be considered suspect.

This Property Check was inconclusive -- after running for the desired number of times, so many attempts were discarded that the property as defined should be considered suspect.

Note that this does not mean that the check failed. No falsifying examples were found. The problem is that the property rejected so many of the generated parameters that it looks a bit iffy.

TODO: describe how constraints work in this check environment, and precisely how discarding works.

Value parameters:
argsPassed

The arguments passed in to this check.

discarded

How many generated values were rejected as not satisfying the property's preconditions.

initSeed

The random seed used for this check. This seed is used by the checking code, to pass in to calls to Randomizer. Reusing the same seed for subsequent runs should produce the same results, so this can be valuable debugging information if you are seeing inconsistent results -- this tells you a seed that produced indeterminate results.

names

TODO: how does this parameter different from argsPassed?

succeeded

How many generated values succeeded.

case class Failure(succeeded: Long, ex: Option[Throwable], names: List[String], argsPassed: List[PropertyArgument], initSeed: Long) extends PropertyCheckResult

This Property Check did not succeed -- the property was falsified.

This Property Check did not succeed -- the property was falsified.

This generally indicates a bug in your code. Values were generated that turned out to produce an error. The next step is usually to examine these values, and understand why they caused an error.

Note that this does not necessarily mean that the code under test is in error: it is possible that the property itself is incorrect. It is good practice to check both, and figure out which one is wrong.

Value parameters:
argsPassed

The arguments passed in to this check.

ex

The Exception that was thrown by the property, if any.

initSeed

The random seed used for this check. This seed is used by the checking code, to pass in to calls to Randomizer. Reusing the same seed for subsequent runs should produce the same results, so this can be extremely valuable while debugging the error: re-running the property with the same seed should retry the test with exactly the same text data, so you can easily test your fixes.

names

TODO: how does this parameter differ from argsPassed?

succeeded

How many generated values passed the property before the failure.

case class Success(args: List[PropertyArgument], initSeed: Long) extends PropertyCheckResult

This Property Check was successful -- after running for the desired number of times, it was not falsified.

This Property Check was successful -- after running for the desired number of times, it was not falsified.

Note that "not falsified" does not mean the same thing as "is definitely correct". The check code tries hard to test edge cases that are likely to detect errors, but there are exceptions, and the check is only as good as the property you have defined. But if the property accurately describes the problem, this usually signifies that things look good.

Value parameters:
args

The arguments passed in to this check.

initSeed

The random seed used for this check. This seed is used by the checking code, to pass in to calls to Randomizer. Reusing the same seed for subsequent runs should produce the same results, so this can be valuable debugging information if you are seeing inconsistent results -- this tells you a seed that passed the check.

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from:
Mirror