QuickCheck for Swift
⚠️ Breaking Changes Ahead ⚠️
cover
ed properties yielded a false positive if the condition was never trueIn the coming release, we will be reworking the coverage system to better match QuickCheck's current functionality.
⚠️ Breaking Changes Ahead ⚠️
Gen.map
forms. Please use the corresponding Gen.zip
function call itself quickCheck(_ :name:)
. Use one of quickCheck(asserting:)
or quickCheck(reporting:)
instead.⚠️ Breaking Changes Ahead ⚠️
This is the last release of SwiftCheck that supports Xcode 9 and its tooling.
Swift turns 4.1, and so SwiftCheck marches onward. This release brought with it a raft of improvements:
property() <- test
pattern is provided in the form of the new quickCheck
functions.ArrayOf<T>
, SetOf<T>
, DictionaryOf<K, V>
, and OptionalOf<T>
have been removed. You can now directly use the natural types [T]
, Set<T>
, [K: V]
, and T?
respectively.SwiftCheck has internally upgraded to Swift 4.x.
⚠️ Breaking Changes Ahead ⚠️
Generation of floating point values specified an incorrect mask which could lead to decreased diversity of test values. Calculation of the mask has been corrected (h/t @sebastiangrail). Seeds replaying tests involving floating point numbers may need to be recalculated.
Gen.fromElements(in:)
, Gen.fromElements(of:)
, Gen.choose(_:)
and Gen.chooseAny()
have been updated to take fuller advantage of type inference and may no longer require explicit specialization. In addition, incorrect specializations may now be diagnosed as errors.
Gen.map(...)
overloads have been deprecated and renamed Gen.zipWith
. These have been given a similar overhaul to the above.
⚠️ Breaking Changes Ahead ⚠️
SwiftCheck now targets Xcode 9 and Swift 3.2. This is the last version of SwiftCheck that will support Swift 3.
SwiftCheck now builds with Swift 3.1
Fixes an issue where generating with the range (Int.max - 512, Int.max)
could cause Builtin
integer conversions to fail in the middle of random number generation.
Fixes an issue where extending the lifetime of ArrowOf<T, U>
or IsoOf<T, U>
could cause the underlying data table to be prematurely deallocated. (h/t @broomburgo)