SemiOrderedFlatZipArbArgsGenerator

class SemiOrderedFlatZipArbArgsGenerator<A1, A2, R>(semiOrderedArgsGenerator: SemiOrderedArgsGenerator<A1>, otherFactory: ArbExtensionPoint.(A1) -> ArbArgsGenerator<A2>, amount: Int, transform: (A1, A2) -> R) : BaseSemiOrderedArgsGenerator<R> (source)

!! No backward compatibility guarantees !! Reuse at your own risk

Since

2.0.0

Constructors

Link copied to clipboard
constructor(semiOrderedArgsGenerator: SemiOrderedArgsGenerator<A1>, otherFactory: ArbExtensionPoint.(A1) -> ArbArgsGenerator<A2>, amount: Int, transform: (A1, A2) -> R)

Properties

Link copied to clipboard
open override val size: Int

Returns the maximum of values this generator is able to generate before some part of it start over again.

Functions

Link copied to clipboard

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple2.

@JvmName(name = "cartesianToTuple5")
fun <A1, A2, A3, A4, A5> SemiOrderedArgsGenerator<Tuple4<A1, A2, A3, A4>>.cartesian(other: SemiOrderedArgsGenerator<A5>): SemiOrderedArgsGenerator<Tuple5<A1, A2, A3, A4, A5>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple5.

@JvmName(name = "cartesianToTuple6")
fun <A1, A2, A3, A4, A5, A6> SemiOrderedArgsGenerator<Tuple5<A1, A2, A3, A4, A5>>.cartesian(other: SemiOrderedArgsGenerator<A6>): SemiOrderedArgsGenerator<Tuple6<A1, A2, A3, A4, A5, A6>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple6.

@JvmName(name = "cartesianToTuple7")
fun <A1, A2, A3, A4, A5, A6, A7> SemiOrderedArgsGenerator<Tuple6<A1, A2, A3, A4, A5, A6>>.cartesian(other: SemiOrderedArgsGenerator<A7>): SemiOrderedArgsGenerator<Tuple7<A1, A2, A3, A4, A5, A6, A7>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple7.

@JvmName(name = "cartesianToTuple8")
fun <A1, A2, A3, A4, A5, A6, A7, A8> SemiOrderedArgsGenerator<Tuple7<A1, A2, A3, A4, A5, A6, A7>>.cartesian(other: SemiOrderedArgsGenerator<A8>): SemiOrderedArgsGenerator<Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple8.

@JvmName(name = "cartesianToTuple9")
fun <A1, A2, A3, A4, A5, A6, A7, A8, A9> SemiOrderedArgsGenerator<Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>>.cartesian(other: SemiOrderedArgsGenerator<A9>): SemiOrderedArgsGenerator<Tuple9<A1, A2, A3, A4, A5, A6, A7, A8, A9>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple9.

@JvmName(name = "cartesianToTuple3")
fun <A1, A2, A3> SemiOrderedArgsGenerator<Tuple2<A1, A2>>.cartesian(other: SemiOrderedArgsGenerator<A3>): SemiOrderedArgsGenerator<Tuple3<A1, A2, A3>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple3.

@JvmName(name = "cartesianToTuple4")
fun <A1, A2, A3, A4> SemiOrderedArgsGenerator<Tuple3<A1, A2, A3>>.cartesian(other: SemiOrderedArgsGenerator<A4>): SemiOrderedArgsGenerator<Tuple4<A1, A2, A3, A4>>

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cartesian product where the values are transformed into a Tuple4.

Combines this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in their cross product where the values are transformed into values of type R.

Link copied to clipboard

Combines this SemiOrderedArgsGenerator with the given other ArgsGenerator and transforms the generated values pairwise, returning a SemiOrderedArgsGenerator which generates values of type R.

Link copied to clipboard
Link copied to clipboard

Maps the values this ArbArgsGenerator generates together with an index to a finite Sequence<R> with the help of the given transform function and then flattens them so that the resulting ArbArgsGenerator returns values of type R.

Link copied to clipboard

Creates for each generated value of type A1 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory, generates the given amount of values, and zips them together with the value of this ArbArgsGenerator to type Tuple2<A1, A2>.

Creates for each generated value of type A1 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory, generates the given amount of values, and transforms them together with the value of this ArbArgsGenerator to type R.

Link copied to clipboard
override fun generate(offset: Int): Sequence<R>

Returns an infinite Sequence of values starting at offset and repeating after reaching size of values where one part of the values are always the same when generated multiple times.

Link copied to clipboard
open override fun generateAfterChecks(offset: Int): Sequence<R>
Link copied to clipboard

Returns a finite Sequence of values based on the given argsRange.

Link copied to clipboard

Returns a finite Sequence of values based on the ArgsRange that the configured ArgsRangeDecider will chose.

Link copied to clipboard
override fun generateOne(offset: Int): R

Returns the value at the given offset.

Link copied to clipboard
open override fun generateOneAfterChecks(offset: Int): R
Link copied to clipboard

Returns one value based on the ArgsRange.offset that the configured ArgsRangeDecider will chose.

Link copied to clipboard

Maps the values this SemiOrderedArgsGenerator generates to type R with the help of the given transform function.

Link copied to clipboard

Maps the values this SemiOrderedArgsGenerator generates together with an index to type R with the help of the given transform function.

Link copied to clipboard
fun <T> SemiOrderedArgsGenerator<T>.pickOneRandomly(seedOffset: Int = 0): T

Picks randomly one element from this SemiOrderedArgsGenerator based on the configured VariistConfig.seed.

Link copied to clipboard

Merges this SemiOrderedArgsGenerator with the given other SemiOrderedArgsGenerator resulting in an SemiOrderedArgsGenerator which yields the values of this SemiOrderedArgsGenerator and then of the other before repeating.

Link copied to clipboard
fun <T> SemiOrderedArgsGenerator<T>.takeRandomly(amount: Int, seedOffset: Int = 0): List<T>

Takes randomly the given amount of elements from this SemiOrderedArgsGenerator.

Link copied to clipboard

!! No backward compatibility guarantees !! Reuse at your own risk

Link copied to clipboard
@JvmName(name = "zipToTuple2")
fun <A1, A2> SemiOrderedArgsGenerator<A1>.zip(other: ArbArgsGenerator<A2>): SemiOrderedArgsGenerator<Tuple2<A1, A2>>
@JvmName(name = "zipToTuple5")
fun <A1, A2, A3, A4, A5> SemiOrderedArgsGenerator<Tuple4<A1, A2, A3, A4>>.zip(other: ArbArgsGenerator<A5>): SemiOrderedArgsGenerator<Tuple5<A1, A2, A3, A4, A5>>
@JvmName(name = "zipToTuple6")
fun <A1, A2, A3, A4, A5, A6> SemiOrderedArgsGenerator<Tuple5<A1, A2, A3, A4, A5>>.zip(other: ArbArgsGenerator<A6>): SemiOrderedArgsGenerator<Tuple6<A1, A2, A3, A4, A5, A6>>
@JvmName(name = "zipToTuple7")
fun <A1, A2, A3, A4, A5, A6, A7> SemiOrderedArgsGenerator<Tuple6<A1, A2, A3, A4, A5, A6>>.zip(other: ArbArgsGenerator<A7>): SemiOrderedArgsGenerator<Tuple7<A1, A2, A3, A4, A5, A6, A7>>
@JvmName(name = "zipToTuple8")
fun <A1, A2, A3, A4, A5, A6, A7, A8> SemiOrderedArgsGenerator<Tuple7<A1, A2, A3, A4, A5, A6, A7>>.zip(other: ArbArgsGenerator<A8>): SemiOrderedArgsGenerator<Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>>
@JvmName(name = "zipToTuple9")
fun <A1, A2, A3, A4, A5, A6, A7, A8, A9> SemiOrderedArgsGenerator<Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>>.zip(other: ArbArgsGenerator<A9>): SemiOrderedArgsGenerator<Tuple9<A1, A2, A3, A4, A5, A6, A7, A8, A9>>
@JvmName(name = "zipToTuple3")
fun <A1, A2, A3> SemiOrderedArgsGenerator<Tuple2<A1, A2>>.zip(other: ArbArgsGenerator<A3>): SemiOrderedArgsGenerator<Tuple3<A1, A2, A3>>
@JvmName(name = "zipToTuple4")
fun <A1, A2, A3, A4> SemiOrderedArgsGenerator<Tuple3<A1, A2, A3>>.zip(other: ArbArgsGenerator<A4>): SemiOrderedArgsGenerator<Tuple4<A1, A2, A3, A4>>

Combines this SemiOrderedArgsGenerator with the given other ArbArgsGenerator and transforms the generated values pairwise, returning a SemiOrderedArgsGenerator which generates values of type R.

Link copied to clipboard
@JvmName(name = "zipDependentToTuple2")
fun <A1, A2> SemiOrderedArgsGenerator<A1>.zipDependent(otherFactory: ArbExtensionPoint.(A1) -> ArbArgsGenerator<A2>): SemiOrderedArgsGenerator<Tuple2<A1, A2>>

Creates for each generated value of type A1 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple5")
fun <A1, A2, A3, A4, A5> SemiOrderedArgsGenerator<Tuple4<A1, A2, A3, A4>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple4<A1, A2, A3, A4>) -> ArbArgsGenerator<A5>): SemiOrderedArgsGenerator<Tuple5<A1, A2, A3, A4, A5>>

Creates for each generated value of type Tuple4 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple6")
fun <A1, A2, A3, A4, A5, A6> SemiOrderedArgsGenerator<Tuple5<A1, A2, A3, A4, A5>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple5<A1, A2, A3, A4, A5>) -> ArbArgsGenerator<A6>): SemiOrderedArgsGenerator<Tuple6<A1, A2, A3, A4, A5, A6>>

Creates for each generated value of type Tuple5 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple7")
fun <A1, A2, A3, A4, A5, A6, A7> SemiOrderedArgsGenerator<Tuple6<A1, A2, A3, A4, A5, A6>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple6<A1, A2, A3, A4, A5, A6>) -> ArbArgsGenerator<A7>): SemiOrderedArgsGenerator<Tuple7<A1, A2, A3, A4, A5, A6, A7>>

Creates for each generated value of type Tuple6 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple8")
fun <A1, A2, A3, A4, A5, A6, A7, A8> SemiOrderedArgsGenerator<Tuple7<A1, A2, A3, A4, A5, A6, A7>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple7<A1, A2, A3, A4, A5, A6, A7>) -> ArbArgsGenerator<A8>): SemiOrderedArgsGenerator<Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>>

Creates for each generated value of type Tuple7 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple9")
fun <A1, A2, A3, A4, A5, A6, A7, A8, A9> SemiOrderedArgsGenerator<Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>) -> ArbArgsGenerator<A9>): SemiOrderedArgsGenerator<Tuple9<A1, A2, A3, A4, A5, A6, A7, A8, A9>>

Creates for each generated value of type Tuple8 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple3")
fun <A1, A2, A3> SemiOrderedArgsGenerator<Tuple2<A1, A2>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple2<A1, A2>) -> ArbArgsGenerator<A3>): SemiOrderedArgsGenerator<Tuple3<A1, A2, A3>>

Creates for each generated value of type Tuple2 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

@JvmName(name = "zipDependentToTuple4")
fun <A1, A2, A3, A4> SemiOrderedArgsGenerator<Tuple3<A1, A2, A3>>.zipDependent(otherFactory: ArbExtensionPoint.(Tuple3<A1, A2, A3>) -> ArbArgsGenerator<A4>): SemiOrderedArgsGenerator<Tuple4<A1, A2, A3, A4>>

Creates for each generated value of type Tuple3 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then zips the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator.

Creates for each generated value of type A1 by this SemiOrderedArgsGenerator an ArbArgsGenerator with the help of the given otherFactory and then transforms the value of this SemiOrderedArgsGenerator with one value of the other ArbArgsGenerator to type R.