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.
How many generated values succeeded.
How many generated values were rejected as not satisfying the property's preconditions.
TODO: how does this parameter different from argsPassed?
The arguments passed in to this check.
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.
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
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.
necessarily
How many generated values passed the property before the failure.
The Exception that was thrown by the property, if any.
TODO: how does this parameter differ from argsPassed?
The arguments passed in to this check.
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.
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.
The arguments passed in to this check.
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.