Kotest ジェネレーター一覧(Generators List)
Kotlin のジェネレーターの完全な一覧を紹介する。
このページには、Kotest の現在のすべてのジェネレーターが一覧されている。ジェネレーターには Arbitrary ジェネレーターと Exhaustive ジェネレーターの 2 種類がある。
ほとんどのジェネレーターはすべてのプラットフォームで使用できる。一部は JVM または JS 専用である。
また、Arrow 用のジェネレーターは別モジュールとして提供される。
| ジェネレーター | 説明 | JVM | JS | Native |
|---|---|---|---|---|
| Nulls | ||||
arb.orNull() |
null 値を混ぜた arb インスタンスから任意の値を生成する。たとえば Arb.int().orNull() は 1, -1, null, 8, 17 などを生成できる。null 生成頻度を制御するオーバーロード版がある。 |
✓ | ✓ | ✓ |
arb.orNull(nullProbability) |
定義した確率で null 値を混ぜ、arb インスタンスから任意の値を生成する。 | ✓ | ✓ | ✓ |
| Booleans | ||||
Arb.boolean() |
Boolean を生成する Arb を返す。 |
✓ | ✓ | ✓ |
Arb.booleanArray(length, content) |
BoolArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Exhaustive.boolean() |
true と false を交互に返す。 | ✓ | ✓ | ✓ |
| Chars | ||||
Arb.char(range1, range2,...) |
1 つ以上の指定範囲から生成された任意の文字を返す。複数範囲をサポートすることで、連続していない特定の文字範囲にも値を埋められる。 | ✓ | ✓ | ✓ |
Arb.char(List<CharRange>) |
文字範囲リスト全体に分散した文字を返す。たとえば Arb.char(listOf('A'..'C', 'X'..'Z')) は A, B, C, X, Y, Z を同じ確率で生成する。 |
|||
Arb.charArray(length, content) |
CharArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
| Constants | ||||
Arb.constant(t) |
常に t を返す Arb を返す。 |
✓ | ✓ | ✓ |
| Bytes | ||||
Arb.byte(min, max) |
min から max まで、両端を含む Byte を生成する Arb を返す。エッジケースは min, -1, 0, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.positiveByte(min, max) |
min から max までの正の Byte を生成する Arb を返す。エッジケースは 1 と max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.negativeByte(min, max) |
min から max までの負の Byte を生成する Arb を返す。エッジケースは min と -1 で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.byteArray(length, content) |
ByteArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Arb.uByte(min, max) |
min から max までの UByte を生成する Arb を返す。エッジケースは min, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.uByteArray(length, content) |
UByteArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
| Shorts | ||||
Arb.short(min, max) |
min から max までの Short を生成する Arb を返す。エッジケースは min, -1, 0, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.positiveShort(min, max) |
min から max までの正の Short を生成する Arb を返す。エッジケースは 1 と max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.negativeShort(min, max) |
min から max までの負の Short を生成する Arb を返す。エッジケースは min と -1 で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.shortArray(length, content) |
ShortArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Arb.uShort(min, max) |
min から max までの UShort を生成する Arb を返す。エッジケースは min, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.uShortArray(length, content) |
UShortArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
| Ints | ||||
Arb.int(min, max) |
min から max までの Int を生成する Arb を返す。エッジケースは min, -1, 0, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.positiveInt(min, max) |
min から max までの正の Int を生成する Arb を返す。エッジケースは 1 と max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.nonNegativeInt(min, max) |
min から max までの非負 Int を生成する Arb を返す。エッジケースは 0, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.negativeInt(min, max) |
min から max までの負の Int を生成する Arb を返す。エッジケースは min と -1 で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.nonPositiveInt(min, max) |
min から max までの非正 Int を生成する Arb を返す。エッジケースは min, -1, 0 で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.intArray(length, content) |
IntArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Arb.uInt(min, max) |
min から max までの UInt を生成する Arb を返す。エッジケースは min, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.uIntArray(length, content) |
UIntArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Exhaustive.ints(range) |
指定した範囲のすべての整数を返す。 | ✓ | ✓ | ✓ |
Arb.multiple(k, max) |
最大値までの k の倍数を生成する。エッジケースは 0 である。 |
✓ | ✓ | ✓ |
Arb.factor(k) |
k の因数を生成する。 |
✓ | ✓ | ✓ |
| Longs | ||||
Arb.long(min, max) |
min から max までの Long を生成する Arb を返す。エッジケースは min, -1, 0, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.positiveLong(min, max) |
min から max までの正の Long を生成する Arb を返す。エッジケースは 1 と max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.negativeLong(min, max) |
min から max までの負の Long を生成する Arb を返す。エッジケースは min と -1 で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.longArray(length, content) |
LongArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Arb.uLong(min, max) |
min から max までの ULong を生成する Arb を返す。エッジケースは min, 1, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.uLongArray(length, content) |
ULongArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
Exhaustive.longs(range) |
指定した範囲のすべての Long を返す。 | ✓ | ✓ | ✓ |
| Floats | ||||
Arb.float(min, max) |
min から max までの Float を生成する Arb を返す。エッジケースには Float.NEGATIVE_INFINITY, min, -1.0, -Float.MIN_VALUE, -0.0, 0.0, Float.MIN_VALUE, 1.0, max, Float.POSITIVE_INFINITY, Float.NaN があり、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.positiveFloat(min, max) |
min から max までの正の Float を生成する Arb を返す。Float.MIN_VALUE, 1.0, max, Float.POSITIVE_INFINITY は指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.negativeFloat(min, max) |
min から max までの負の Float を生成する Arb を返す。エッジケースは Float.NEGATIVE_INFINITY, min, -1.0, -Float.MIN_VALUE で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.numericFloat(min, max) |
min から max までの数値 Float を生成する Arb を返す。エッジケースは min, -1.0, -Float.MIN_VALUE, -0.0, 0.0, Float.MIN_VALUE, 1.0, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.floatArray(length, content) |
FloatArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
| Doubles | ||||
Arb.double(min, max) |
min から max までの Double を生成する Arb を返す。エッジケースには Double.NEGATIVE_INFINITY, min, -1.0, -Double.MIN_VALUE, -0.0, 0.0, Double.MIN_VALUE, 1.0, max, Double.POSITIVE_INFINITY, Double.NaN があり、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.positiveDouble(min, max) |
min から max までの正の Double を生成する Arb を返す。Double.MIN_VALUE, 1.0, max, Double.POSITIVE_INFINITY は指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.negativeDouble(min, max) |
min から max までの負の Double を生成する Arb を返す。エッジケースは Double.NEGATIVE_INFINITY, min, -1.0, -Double.MIN_VALUE で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.numericDouble(min, max) |
min から max までの数値 Double を生成する Arb を返す。エッジケースは min, -1.0, -Double.MIN_VALUE, -0.0, 0.0, Double.MIN_VALUE, 1.0, max で、指定範囲に含まれる場合のみ含まれる。 |
✓ | ✓ | ✓ |
Arb.doubleArray(length, content) |
DoubleArray を生成する Arb を返す。length は配列長を生成し、content は配列内容を生成する。 |
✓ | ✓ | ✓ |
| Enums | ||||
Arb.enum<T>() |
指定した enum から定数をランダムに選択する。 | ✓ | ✓ | ✓ |
Exhaustive.enum<T>() |
指定した enum に定義されたすべての定数を反復する。 | ✓ | ✓ | ✓ |
| Regional | ||||
localeArb() |
en_US や ca_ES_VALENCIA のような Java 形式のロケールを生成する。 |
✓ | ✓ | ✓ |
Arb.timezoneCodeThree() |
BST や EST のような 3 文字形式のタイムゾーンを生成する。可能なすべてのタイムゾーンを含むわけではなく、データサンプリングのみに使用される。 | ✓ | ✓ | ✓ |
Arb.geoLocation() |
地球上に均一分布するランダムな緯度/経度地点を使って GeoLocation オブジェクトを生成する。 |
✓ | ✓ | ✓ |
| Strings | ||||
Arb.string(range) |
指定範囲からランダムに選ばれたサイズで、印字可能なランダム文字列を生成する。範囲を指定しない場合は (0..100) が使用される。エッジケースには空文字列と Unicode 文字列が含まれる。 |
✓ | ✓ | ✓ |
Arb.stringPattern(pattern) |
RgxGen を使用して、指定したパターンに一致する文字列を生成する。 | ✓ | ||
Exhaustive.azstring(range) |
指定範囲のすべての AZ 文字列を返す。たとえば範囲が 1..2 の場合、a, b, c, …, yz, zz が含まれる。 | ✓ | ✓ | ✓ |
Arb.email(localPartGen, domainGen) |
ローカル部とドメイン部が指定ジェネレーターで生成されるランダム文字列である、任意のメールアドレスを生成する。両方にデフォルト値がある。 | ✓ | ✓ | ✓ |
Arb.emailLocalPart() |
任意のローカルメール部を生成する。 | ✓ | ✓ | ✓ |
Arb.uuid(type) |
指定した型のランダム UUID を生成する。 | ✓ | ||
Arb.domain(tlds, labelArb) |
ランダムな TLD、デフォルトでは上位 120 個の TLD のいずれか、とドメイン部分を生成するラベルジェネレーターを使って任意のドメインを生成する。 | ✓ | ✓ | ✓ |
| Builders | ||||
Arb.bind(arbA, arbB, fn) |
指定した 2 つの arb それぞれから値を取得し、その値を提供された関数に渡して値を生成する。 | ✓ | ✓ | ✓ |
Arb.bind(arbA, arbB, arbC, fn) |
指定した 3 つの arb それぞれから値を取得し、その値を提供された関数に渡して値を生成する。 | ✓ | ✓ | ✓ |
Arb.bind(arbA, ...., fn) |
指定した各 arb から値を取得し、その値を提供された関数に渡して値を生成する。 | ✓ | ✓ | ✓ |
| Combinatorics | ||||
Arb.choice(arbs) |
指定した Arb の 1 つをランダムに選択し、それを使って次の要素を生成する。 | ✓ | ✓ | ✓ |
Arb.choose(pairs) |
重みに基づいて値を生成する。たとえば Arb.choose(1 to 'A', 2 to 'B') は ‘A’ を 33%、‘B’ を 66% 生成する。 |
✓ | ✓ | ✓ |
Arb.frequency(list) |
choose の別名。 | ✓ | ✓ | ✓ |
Arb.shuffle(list) |
リストのランダム順列を生成する。たとえば Arb.shuffle(listOf(1,2,3)) は listOf(3,1,2), listOf(1,3,2) などを生成できる。 |
✓ | ✓ | ✓ |
Arb.subsequence(list) |
インデックス 0 から始まり、空リストを含む、指定リストのランダム部分列を生成する。たとえば Arb.subsequence(listOf(1,2,3)) は listOf(1), listOf(1,2) などを生成できる。 |
✓ | ✓ | ✓ |
| Collections | ||||
Arb.element(collection) |
指定したコレクションの要素の 1 つをランダムに選択する。 | ✓ | ✓ | ✓ |
Arb.element(vararg T) |
可変長引数から要素の 1 つをランダムに選択する。 | ✓ | ✓ | ✓ |
Arb.list(gen, range) |
指定した要素ジェネレーターによって値が生成されるリストを生成する。各リストのサイズは指定範囲に基づいてランダムに決定される。 | ✓ | ✓ | ✓ |
Arb.set(gen, range) |
指定した要素ジェネレーターによって値が生成されるセットを生成する。各セットのサイズは指定範囲に基づいてランダムに決定される。slippage 引数は、基礎 arb が要求サイズを満たすだけの一意な値を十分に生成できない場合に、失敗する前に各要素生成を何回試行するかを指定する。 | ✓ | ✓ | ✓ |
Arb.set(gen, range, slippage) |
指定した要素ジェネレーターによって値が生成されるセットを生成する。各セットのサイズは指定範囲に基づいてランダムに決定される。 | ✓ | ✓ | ✓ |
Arb<T>.chunked(range) |
このレシーバーの要素で各リストを埋めるリストを生成する。各チャンクサイズは指定範囲内でランダムに選択される。 | ✓ | ✓ | ✓ |
Arb<T>.chunked(minSize, maxSize) |
このレシーバーの要素で各リストを埋めるリストを生成する。各チャンクサイズは指定範囲パラメータ内でランダムに選択される。 | ✓ | ✓ | ✓ |
Exhaustive.collection(list) |
リストの各要素を 1 つずつ列挙する。 | ✓ | ✓ | ✓ |
| Maps | ||||
Arb.map(Arb<Pair<K,V>>, minSize, maxSize) |
minSize と maxSize の間のサイズを持つランダムなマップを生成し、各要素は指定したペア arb から生成される。 |
✓ | ✓ | ✓ |
Arb.map(Arb<K>, Arb<V>, minSize, maxSize) |
minSize と maxSize の間のサイズを持つランダムなマップを生成し、各キーは指定したキー arb から、各値は指定した値 arb から生成される。 |
✓ | ✓ | ✓ |
| Tuples | ||||
Arb.pair(arb1, arb2) |
提供された 2 つの Arb からペアの各値を取得する Pair インスタンスを生成する。 |
✓ | ✓ | ✓ |
Arb.triple(arb1, arb2, arb3) |
提供された 3 つの Arb からトリプルの各値を取得する Triple インスタンスを生成する。 |
✓ | ✓ | ✓ |
| Dates | ||||
Arb.date(range) |
指定範囲内の年を使用して任意の日付を生成する。 | ✓ | ||
Arb.datetime(range) |
指定範囲内の年を使用して任意の日時を生成する。 | ✓ | ||
Arb.localDateTime(range) |
指定範囲内の年を使用して任意の LocalDateTime を生成する。 |
✓ | ||
Arb.localDate(range) |
指定範囲内の年を使用して任意の LocalDate を生成する。 |
✓ | ||
| Durations | ||||
Arb.duration(range) |
指定範囲から任意の duration を生成する。 | ✓ | ✓ | ✓ |
| Kotlinx Date/Time | io.kotest.extensions:kotest-property-datetime モジュールが必要。 |
|||
Arb.date(yearRange) |
指定範囲内の年と他のフィールドを使って LocalDate をランダムに生成する。 |
✓ | ✓ | ✓ |
Arb.datetime(yearRange, hourRange, minuteRange, secondRange) |
指定範囲のすべてのフィールドを使って LocalDateTime を生成する。 |
✓ | ✓ | ✓ |
Arb.instant(range) |
指定範囲からランダムに生成された epoch を持つ Instant を生成する。 |
✓ | ✓ | ✓ |
| Networking | ||||
Arb.ipAddressV4() |
a.b.c.d 形式の任意の IP アドレスを生成する。各部分は 0 から 255 の間である。 | ✓ | ✓ | ✓ |