- No longer targeting .NET Framework (#417, [@LyndonGingerich][LyndonGingerich])
- The runtime of
Property.recheck
is now about the same asProperty.check
. Previously, it was about ten times slower. (#433, @TysonMN) - The error message given when a deadend is reached during rechecking is improved to say that the cause is a change in generators. (#436, @TysonMN)
- The implementation of
Property.falseToFailure
is now better. As a result,Property.recheckBool
now only tests the shrunken input. ([#437][437], @TysonMN)
- Fix bug in
Property.recheck
where the result is alwaysFailed
. (#415, @TysonMN) - Runtime targets are now .NET Standard 2.0, .NET 4.8. and .NET 6.0. (#416, [@LyndonGingerich][LyndonGingerich])
- Add
Tree.apply
. ChangeGen.apply
from monadic to applicative. Revert runtime optimization ofGen.integral
. (#398, @TysonMN) - Change
ListGen.traverse
from monadic to applicative. (#399, @TysonMN) - Fix bug in the
BindReturn
method of theproperty
CE where the generated value is not added to the Journal. (#401, @TysonMN) - Add
BindReturn
to thegen
CE. This essentially changes the last call tolet!
to useGen.map
instead ofGen.bind
. AddMergeSources
to thegen
andproperty
CEs. This change enables theand!
syntax. (#400, @TysonMN)
- Rename
Property.failOnFalse
toProperty.falseToFailure
(#384, @TysonMN) - Add
BindReturn
to theproperty
CE (#364, @TysonMN)- A breaking change. Previously, returning a
bool
from aproperty
CE (after usinglet!
) caused the CE to have return typeProperty<unit>
. Now this results in a return type ofProperty<bool>
. The previous behavior can now be expressed by piping theProperty<bool>
instance intoProperty.falseToFailure
.
- A breaking change. Previously, returning a
- Change recheck API to accept recheck data encoded as
string
(#385, @TysonMN) - Add
RecheckInfo
to simplify recheck reporting (#386, @TysonMN) - Optimize rechecking by only executing the end of the
property
CE with the shrunken input (#336, @TysonMN)
- Add Property.failOnFalse (#380, @TysonMN)
- Fix bug #381 that prevents rendering of reports containing
None
(#382, @TysonMN)
- Improved integral shrink trees to match behavior of binary search (#239, @TysonMN)
- Add render functions (#274, @adam-becker)
- fix link to tutorial in nuget package (#305, @ThisFunctionalTom)
- made Seq module internal and moved to own file (#307, @TysonMN)
- Sort .editorconfig properties (#308, @adam-becker)
- Remove PropertyConfig.coalesce (#309, @adam-becker)
- Move property config to its own file. (#311, @adam-becker)
- Add property args structure. (#312, @adam-becker)
- Rename the parameters of Range.exponentialFrom (and friends) (#315, @dharmaturtle)
- Implement Property.select via bind to avoid bug (#318, @TysonMN)
- Remove duplicates in frequency shrink tree (#321, @TysonMN)
- Special processing for printing ResizeArray<_> in Property.forAll #323 (#324, @altxt)
- Fix for counterexample crashing bug #327 (#328, @TysonMN)
- Refactors to simplify code mostly for takeSmallest (#334, @TysonMN)
- Remove extra sized call (#337, @adam-becker)
- Implement
Gen.mapN
variants withGen.apply
(#338, @adam-becker) - allow tests to access internal scope (#344, @TysonMN)
- change access scope for two top-level modules from private to internal (#345, @TysonMN)
- improve function name takeSmallest to shrinkInput in Property (#347, @TysonMN)
- Add error handling to Property.map (#348, @TysonMN)
- Add contributing guidelines. (#349, @adam-becker)
- Update benchmark project (#350, @adam-becker)
- Deprecate gen functions (#351, @adam-becker)
- Remove 'Random.Builder' (#352, @adam-becker)
- make Gen.{sample, sampleTree} and Random.replicate lazy (#354, @TysonMN)
- Better C# example in README.md. (#355, @adam-becker)
- remove Property.ofThrowing (#357, @TysonMN)
- Fixed import namespace in cshrp sample (#358, @lupin-de-mid)
- Fix order of arguments to Expect.equal (#361, @TysonMN)
- Fix a few things in our Seed implementation (#362, @adam-becker)
- Utilize Property.set internally (#363, @TysonMN)
- Add
PropertyConfig
(#288, @dharmaturtle) - Add
OptionTree.traverse
(#282, @TysonMN) - Use fsdocs (#277, @adam-becker)
- Rearrange parameters for better chaining (#266, @adam-becker)
- Rearrange
Tree.bind
parameters (#300, @adam-becker)
- Rearrange
- Add
ListGen.traverse
(#260, @TysonMN) - Improve and extend DateTime/DateTimeOffset generation (#252, @cmeeren)
- Split Property.fs across multiple files (#247, @adam-becker)
- Add support for LINQ via Hedgehog.Linq namespace (#244, @adam-becker)
- Switch to Fable.Mocha (#196, @ThisFunctionalTom)
- Add Gen.single and Gen.decimal (#250, @cmeeren)
- Add Property.recheck (#233, @adam-becker)
- Remove additional space in Tree.render (#240, @TysonMN)
- Improve Range documentation (#237, #235, @TysonMN)
- Improve Gen.list (#231, @adam-becker)
- Add Tree.render (#229, @TysonMN)
- Improve Gen.frequency documentation (#230, @TysonMN)
- Mangle compiled name for functions that cannot be called from langs other than F# (#219, #255, @mausch / @dharmaturtle)
- Add missing internal conversions to bigint in Numeric.fs (#221, @mausch)
- Add LINQ support for Range (#220, @mausch)
- Improve UInt32 and UInt64 value generation (avoid overflows) (#173, @jwChung)
- Improve DateTime value generation (include milliseconds) (#165, @jwChung)
- Verify that Seed.from 'fixes' the γ-value (#161, @moodmosaic)
- Sync F# version of Seed with Haskell (#160, @moodmosaic)
- Correct mixGamma oddness check (#142, @moodmosaic)
- Add ToBigInt overload for System.Double (#136, @moodmosaic)
- Increase size in Discard case (#129, @moodmosaic)
- XML-documentation improvements (#122, @moodmosaic)
- Typo fix in doc/tutorial.md (#121, @frankshearar)
- Render exceptions so they get added to the journal (#119, @moodmosaic)
- Exclude FSharp.Core NuGet dependency (#109, @ploeh)
- Add Range exponential combinators (#105, @moodmosaic)
- Change Gen.double and Gen.float so that they take a Range type (#104, @moodmosaic)
- Shrink floating binary point types similar to the Haskell version (#103, @moodmosaic)
- Add F# interactive examples to the Shrink module (#102, @moodmosaic)
- Test F# interactive examples with Doctest (#99, @moodmosaic)
- Add ASCII, Latin-1, and Unicode character generators (#96, @moodmosaic)
- Add doc/tutorial, make smaller README (#94, @moodmosaic)
- Modify Gen combinators so that they take a Range (#92, @moodmosaic)
- Add Range type and combinators (#91, @moodmosaic)
- Improve the Visual Studio dev experience (#90, @porges)
- First release of Hedgehog (@jystic, @moodmosaic)
[LyndonGingerich] https://github.com/LyndonGingerich