Package-level declarations

Types

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.8.0")
class ArbitraryProperty<T> : ReadOnlyProperty<Nothing?, T>
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.8.0")
class CombinatorScope
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.8.0")
sealed class Combined<R>
Link copied to clipboard
data class IntRangeArbitrary(min: Int, max: Int, minSize: Int, maxSize: Int) : ArbitraryDecorator<IntRange> , SizableArbitrary<IntRange>
Link copied to clipboard
typealias JqwikCharRange = CharRange
Link copied to clipboard
typealias JqwikIntRange = IntRange
Link copied to clipboard
typealias JqwikLongRange = LongRange
Link copied to clipboard
typealias JqwikShortRange = ShortRange
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
class SequenceArbitrary<T>(elementArbitrary: Arbitrary<T>) : ArbitraryDecorator<Sequence<T>> , SizableArbitrary<Sequence<T>>

Fluent interface to add functionality to arbitraries that generate instances of type Sequence

Properties

Link copied to clipboard
val TypeUsage.kotlinType: KType?

Functions

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Boolean.Companion.any(): Arbitrary<Boolean>

Convenience function to create an arbitrary for Boolean.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Byte.Companion.any(): ByteArbitrary

Convenience function to create an arbitrary for Byte.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Char.Companion.any(): CharacterArbitrary

Convenience function to create an arbitrary for Char.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Double.Companion.any(): DoubleArbitrary

Convenience function to create an arbitrary for Double.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
inline fun <T : Enum<T>> Enum.Companion.any(): Arbitrary<T>

Function to create arbitrary for all values of an enum type.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Float.Companion.any(): FloatArbitrary

Convenience function to create an arbitrary for Float.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Int.Companion.any(): IntegerArbitrary

Convenience function to create an arbitrary for Int.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Long.Companion.any(): LongArbitrary

Convenience function to create an arbitrary for Long.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Short.Companion.any(): ShortArbitrary

Convenience function to create an arbitrary for Short in a range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun String.Companion.any(): StringArbitrary

Convenience function to create an arbitrary for String.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun IntRange.Companion.any(): IntRangeArbitrary

Function to create an arbitrary for IntRange.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Byte.Companion.any(range: IntRange): ByteArbitrary

Convenience function to create an arbitrary for Byte in a range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Char.Companion.any(range: CharRange): CharacterArbitrary

Convenience function to create an arbitrary for Char in range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Double.Companion.any(range: ClosedFloatingPointRange<Double>): DoubleArbitrary

Convenience function to create an arbitrary for Double in range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Float.Companion.any(range: ClosedFloatingPointRange<Float>): FloatArbitrary

Convenience function to create an arbitrary for Float in range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Int.Companion.any(range: IntRange): IntegerArbitrary

Convenience function to create an arbitrary for Int in range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Long.Companion.any(range: LongRange): LongArbitrary

Convenience function to create an arbitrary for Long in range.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun Short.Companion.any(range: IntRange): ShortArbitrary

Convenience function to create an arbitrary for Short.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun IntRange.Companion.any(range: IntRange): IntRangeArbitrary

Function to create an arbitrary for IntRange with range.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
inline fun <T : Any> anyForType(): TypeArbitrary<T>

Function to create a TypeArbitrary.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun anyFunction(kClass: KClass<*>): Functions.FunctionWrapper

Function to create a FunctionWrapper.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <R : Any> anyFunction0(returning: Arbitrary<R>): FunctionArbitrary<() -> R, R>

Create a FunctionArbitrary for Kotlin function without parameters.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <A, R : Any> anyFunction1(returning: Arbitrary<R>): FunctionArbitrary<(A) -> R, R>

Create a FunctionArbitrary for Kotlin function with 1 parameter.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <A, B, R : Any> anyFunction2(returning: Arbitrary<R>): FunctionArbitrary<(A, B) -> R, R>

Create a FunctionArbitrary for Kotlin function with 2 parameters.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <A, B, C, R : Any> anyFunction3(returning: Arbitrary<R>): FunctionArbitrary<(A, B, C) -> R, R>

Create a FunctionArbitrary for Kotlin function with 3 parameters.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <A, B, C, D, R : Any> anyFunction4(returning: Arbitrary<R>): FunctionArbitrary<(A, B, C, D) -> R, R>

Create a FunctionArbitrary for Kotlin function with 4 parameters.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <A, B> anyPair(firstArbitrary: Arbitrary<A>, secondArbitrary: Arbitrary<B>): Arbitrary<Pair<A, B>>

Function to create an arbitrary for Pair.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.5")
fun <T> Collection<T>.anySubset(): SetArbitrary<T>

Convenience function to replace Arbitraries.subsetOf(..)

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <A, B, C> anyTriple(firstArbitrary: Arbitrary<A>, secondArbitrary: Arbitrary<B>, thirdArbitrary: Arbitrary<C>): Arbitrary<Triple<A, B, C>>

Function to create an arbitrary for Triple.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.7.1")
fun <T> Collection<T>.anyValue(): Arbitrary<T>

Convenience function to replace Arbitraries.of(..)

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
inline fun <T, A : Any> Arbitrary<T>.array(): ArrayArbitrary<T, A>

Create a new arbitrary of type Array using the existing arbitrary for generating the elements of the array.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.8.0")
fun <R> combine(combinator: CombinatorScope.() -> Combined<R>): Arbitrary<R>

Combine arbitraries using the combinator DSL:

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T, R> combine(arbitraries: List<Arbitrary<T>>, filter: (v1: List<T>) -> Boolean? = null, combinator: (v1: List<T>) -> R): Arbitrary<R>

Combine list of arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, filter: (T1, T2) -> Boolean? = null, combinator: (v1: T1, v2: T2) -> R): Arbitrary<R>

Combine 2 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, filter: (v1: T1, v2: T2, v3: T3) -> Boolean? = null, combinator: (v1: T1, v2: T2, v3: T3) -> R): Arbitrary<R>

Combine 3 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, filter: (v1: T1, v2: T2, v3: T3, v4: T4) -> Boolean? = null, combinator: (v1: T1, v2: T2, v3: T3, v4: T4) -> R): Arbitrary<R>

Combine 4 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, filter: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5) -> Boolean? = null, combinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5) -> R): Arbitrary<R>

Combine 5 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, T6, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, a6: Arbitrary<T6>, filter: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) -> Boolean? = null, combinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) -> R): Arbitrary<R>

Combine 6 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, T6, T7, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, a6: Arbitrary<T6>, a7: Arbitrary<T7>, filter: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) -> Boolean? = null, combinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) -> R): Arbitrary<R>

Combine 7 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, T6, T7, T8, R> combine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, a6: Arbitrary<T6>, a7: Arbitrary<T7>, a8: Arbitrary<T8>, filter: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) -> Boolean? = null, combinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) -> R): Arbitrary<R>

Combine 8 arbitraries into one.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A> Tuple.Tuple1<A>.component1(): A
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B> Tuple.Tuple2<A, B>.component2(): B
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B, C> Tuple.Tuple3<A, B, C>.component3(): C
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B, C, D> Tuple.Tuple4<A, B, C, D>.component4(): D
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B, C, D, E> Tuple.Tuple5<A, B, C, D, E>.component5(): E
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B, C, D, E, F> Tuple.Tuple6<A, B, C, D, E, F>.component6(): F
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B, C, D, E, F, G> Tuple.Tuple7<A, B, C, D, E, F, G>.component7(): G
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
operator fun <A, B, C, D, E, F, G, H> Tuple.Tuple8<A, B, C, D, E, F, G, H>.component8(): H
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T, R> flatCombine(arbitraries: List<Arbitrary<T>>, flatCombinator: (v1: List<T>) -> Arbitrary<R>): Arbitrary<R>

Flat-combine list of arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, flatCombinator: (v1: T1, v2: T2) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 2 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, flatCombinator: (v1: T1, v2: T2, v3: T3) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 3 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, flatCombinator: (v1: T1, v2: T2, v3: T3, v4: T4) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 4 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, flatCombinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 5 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, T6, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, a6: Arbitrary<T6>, flatCombinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 6 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, T6, T7, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, a6: Arbitrary<T6>, a7: Arbitrary<T7>, flatCombinator: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 7 arbitraries into one.

@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T1, T2, T3, T4, T5, T6, T7, T8, R> flatCombine(a1: Arbitrary<T1>, a2: Arbitrary<T2>, a3: Arbitrary<T3>, a4: Arbitrary<T4>, a5: Arbitrary<T5>, a6: Arbitrary<T6>, a7: Arbitrary<T7>, a8: Arbitrary<T8>, flatCombine: (v1: T1, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, v7: T7, v8: T8) -> Arbitrary<R>): Arbitrary<R>

Flat-combine 8 arbitraries into one.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.2")
fun <T> frequency(vararg frequencies: Pair<Int, T>): Arbitrary<T>

Function to create arbitrary that generates one of the provided values with a given frequency.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.2")
fun <T> frequencyOf(vararg frequencies: Pair<Int, Arbitrary<out T>>): Arbitrary<T>

Function to choose from one of the provided arbitraries with a given frequency.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun TypeUsage.isAssignableFrom(kClass: KClass<*>): Boolean
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun StringArbitrary.ofLength(range: IntRange): StringArbitrary

Set the minimum and maximum allowed length of generated strings.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T, A> ArrayArbitrary<T, A>.ofSize(range: IntRange): ArrayArbitrary<T, A>
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> IteratorArbitrary<T>.ofSize(range: IntRange): IteratorArbitrary<T>
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> ListArbitrary<T>.ofSize(range: IntRange): ListArbitrary<T>
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <K, V> MapArbitrary<K, V>.ofSize(range: IntRange): MapArbitrary<K, V>
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> SetArbitrary<T>.ofSize(range: IntRange): SetArbitrary<T>
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> StreamArbitrary<T>.ofSize(range: IntRange): StreamArbitrary<T>
Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> Arbitrary<T>.orNull(nullProbability: Double): Arbitrary<T?>

Create a new arbitrary of the same type but inject null values with a probability of nullProbability.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> Arbitrary<T>.pair(): Arbitrary<Pair<T, T>>

Create a new arbitrary for type Pair using the existing arbitrary for generating the elements of the pair.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> runBlockingProperty(context: CoroutineContext = EmptyCoroutineContext, block: suspend CoroutineScope.() -> T): T

Wrap a property so that it can use asynchronous functions within.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> Arbitrary<T>.sequence(): SequenceArbitrary<T>

Create a new arbitrary of type SequenceArbitrary using the existing arbitrary for generating the elements of the sequence.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <T> Arbitrary<T>.triple(): Arbitrary<Triple<T, T, T>>

Create a new arbitrary for type Triple using the existing arbitrary for generating the elements of the triple.

Link copied to clipboard
@API(status = API.Status.EXPERIMENTAL, since = "1.6.0")
fun <B : Any, T> Builders.BuilderCombinator<B>.use(arbitrary: Arbitrary<T>, combinator: (B, T) -> B): Builders.BuilderCombinator<B>

Convenience function for Kotlin to not use backticked in function.