Skip to content

Releases: fscheck/FsCheck

3.0.0-rc3

03 Mar 10:08
Compare
Choose a tag to compare
  • Breaking change: confusingly named StringNoNnulls is renamed to StringNoNullChar.
  • Breaking change: The operators |@, @| and %> are removed. Please use Prop.label instead.
  • Added more ForAll overloads for various Task types.
  • The collections types NonEmptySet, NonEmptyArray and FixedLengthArray now implement IEnnumerable to avoid a call to Get in common scenarios.
  • Enabled source linking and deterministic builds. (by Patrick Stevens)

3.0.0-rc2

25 Feb 12:27
Compare
Choose a tag to compare
  • Negative decimals are now also generated. (by Stephen Smith)

  • Relax FsCheck.Xunit's restriction on xUnit versions. (by Tom Rijnbeek)

  • Made Gen.choose64 public.

  • Remove dependency on FAKE and paket in favor of standard .NET tools. (by Patrick Stevens)cription of the release

3.0.0-rc1

23 Jul 16:07
Compare
Choose a tag to compare
  • Enable properties that return Task<T>. (by Mark Seemann)

  • Includes all changes up to 2.16.6.

2.16.6

01 Jul 22:20
af0b443
Compare
Choose a tag to compare

Added Map and Return methods to make FsCheck more F#+ friendly. (by Gustavo Leon)

2.16.5

01 Jun 12:57
Compare
Choose a tag to compare

Improved C# record type generation - previously no values for some properties were not generated.

3.0.0-beta2

08 Jan 12:04
Compare
Choose a tag to compare
3.0.0-beta2 Pre-release
Pre-release

Fixed bug that caused exceptions not to be propagated to output correctly.
Added a few missing methods in Fluent.Arbitrary.
Add a few missing Prop.ForAll overloads.
Includes changes in 2.16.4.

2.16.4

08 Jan 11:37
Compare
Choose a tag to compare

Fixed display issue affecting custom F# exceptions.
Prop.throws now fails the test if an unexpected exception is thrown.

3.0.0-beta1

05 Sep 15:01
Compare
Choose a tag to compare
3.0.0-beta1 Pre-release
Pre-release

Backwards incompatible*: Refactor and split of the Gen and Arbitrary APIs into FsCheck.FSharp and FsCheck.Fluent. This is a first step in splitting the entire API into a functional (for F# consumers) and fluent (for C# and VB.NET consumers) interface. This should be clearer for both kinds of consumers.
By and large, if you are an F# user, now open FsCheck.FSharp in addition to open FsCheck. If you are a C# or VB.NET user, add using FsCheck.Fluent.
Backwards incompatible*: redesigned API for per-type Arbitrary instance discovery and lookup. There is no longer a single global, mutable map of type to Arbitrary instances, instead there are any number of immutable IArbMaps that can be configured at your leisure, and set via Config.WithArbitrary on the test.
Detailed changes to FsCheck.FSharp.Gen: Added RequireQualifiedAccess. Added apply and bind. Renamed collect and sequence to collect/sequenceToList/Array/Seq for clarity. Removed unzip and unzip3 - their implementation is problematic, and it's hard to see a use case for them. Removed subListOfToIlist, subListOfArr - these returned IList<'T> types. Untupled rows,cols arguments in array2DOfDim.
Detailed changes to FsCheck.Fluent.Gen: Split into non-extension methods on Gen and extension methods on Gen<T> type in GenExtensions. Removed Gen.Apply - not useful without partial application. Two, Three, Four and Zip now output ValueTuples, which is idiomatic in modern C#, and are only visible as extension methods on Gen<T>. Removed the overloads of Zip with arity 3. Changed the return type of methods that returned IList<T> previously to List<T>. Split the Sample method with optional arguments in three overloads, this is better for backwards compatibilty going forward.
Detailed changes to FsCheck.FSharp.Arb: Removed fromGenShrinkFunc. Removed register, registerByType, from, generate and shrink - these are replaced by functions on ArbMap, resp. mergeWith, mergeWithType, arbitrary and generate. Made Arb.Default internal. Default types should now be looked up using ArbMap, e.g. ArbMap.defaults |> ArbMap.arbitrary<list<int>>.
Detailed changes to FsCheck.Fluent.Arb: Removed extension method ToArbitrary that took an F# function as argument for the shrinker. Renamad Arb.From methods to Arbitrary.From - C# does not tolerate ambiguity between using two types of the same name in the same namespace. Removed Register, RegisterByType, From, Generate and Shrink - these are replaced by methods on ArbMap, resp. Merge<'T>, Merge, ArbFor and GeneratorFor. Made Arb.Default internal. Default Arbitrary types should now be looked up using ArbMap, e.g. ArbMap.Default.ArbFor<int[]>().
First pass at improving XML docs for Gen API.
Fixed bug in try..with computation expression builder.
Added support for let!...and!... syntax in computation expression builder.

2.16.3

04 Sep 09:45
Compare
Choose a tag to compare

Allow configuration in FsCheck.Xunit.PropertiesAttribute to affect properties on nested types or modules. PropertiesAttribute on the closest enclosing type takes precedence.
Add FsCheck.Xunit.TestOutputRunner - a simple runner which just redirects output to xUnit's TestOutputHelper.

2.16.2

30 Aug 21:02
Compare
Choose a tag to compare

Support generation and shrinking of System.Collections.Immutable types via reflection.