-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Statistically verify result #288
Merged
jacobstanley
merged 14 commits into
hedgehogqa:master
from
felixmulder:statistically-verify-result
Oct 10, 2019
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
a8932aa
Add `Confidence` to `PropertyConfig`
felixmulder 603e333
Add ability to statistically verify a completed test
felixmulder 0593a00
Add example for a test which will fail on confidence violation
felixmulder 4f5faae
Abort tests where coverage cannot be reached
felixmulder f477517
Stop early when coverage has been assured to be satisfied
felixmulder e7e37c3
Don't stop early if `withTests` is set
felixmulder c7e7176
Make Wilson lower bound negative `z` explicit
felixmulder 70ef49b
Extract confidence success tolerance to var, pending interface discus…
felixmulder 863173f
Rework wilson calculation to return tuple of Doubles
felixmulder 44af296
Refine wilson bounds function
HuwCampbell 6783fea
Work around multiple measurement error by only measuring every 100 te…
HuwCampbell 8cdb44e
Remove comment regarding `tolerance` that's no logner applicable
felixmulder 6613dd9
Make API a bit more straight-forward for confidence based stopping
felixmulder 6ae62a0
Rename `terminateEarly` to `verifiedTermination`
felixmulder File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
{-# LANGUAGE OverloadedStrings #-} | ||
{-# LANGUAGE TemplateHaskell #-} | ||
module Test.Example.Confidence where | ||
|
||
import Hedgehog | ||
import qualified Hedgehog.Range as Range | ||
import qualified Hedgehog.Internal.Gen as Gen | ||
|
||
------------------------------------------------------------------------ | ||
-- Example 0: This test will certify that it is impossible to get 60% | ||
-- coverage for the property label "number == 1" | ||
-- | ||
-- Note that it will abort running once it knows its task is | ||
-- impossible - it will not run 1000000 tests | ||
-- | ||
prop_without_confidence :: Property | ||
prop_without_confidence = | ||
verifiedTermination . withConfidence (10^9) . withTests 1000000 . property $ do | ||
number <- forAll (Gen.int $ Range.constant 1 2) | ||
cover 60 "number == 1" $ number == 1 | ||
|
||
------------------------------------------------------------------------ | ||
tests :: IO Bool | ||
tests = | ||
checkSequential $$(discover) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removing this field broke the API between 1.0.1 and 1.0.2 😞
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where's MIMA when you need it 😢
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was it removed by accident? Also—it's time to start adding some more automated tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think everything in
Hedgehog.Internal.Property
is considered internal.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was it removed for a reason though? (We do try not to break other peoples code if possible.)