Kotest 제너레이터 목록(Generators List)

Kotlin의 제너레이터의 전체 목록에 대해 소개한다.

이 페이지에는 Kotest의 모든 현재 제너레이터가 나열되어 있다. 제너레이터에는 Arbitrary 제너레이터와 Exhaustive 제너레이터의 두 가지 유형이 있다.

대부분의 제너레이터는 모든 플랫폼에서 사용할 수 있다. 일부는 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() Booleans을 생성하는 Arb를 반환한다. ✓ ✓ ✓
Arb.booleanArray(length, content) length는 배열의 길이를 생성하고 content는 배열의 내용을 생성하는 BoolArray를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Exhaustive.boolean() 참과 거짓 사이의 대안. ✓ ✓ ✓
Chars
Arb.char(range1, range2,...) 하나 이상의 지정된 범위에서 생성된 임의의 문자를 반환한다. 여러 범위를 지원함으로써 특정 비연속적인 문자 범위에 값을 채울 수 있다. ✓ ✓ ✓
Arb.char(List<CharRange>) 문자 목록 전체에 분산된 문자를 반환한다. 예를 들어 Arb.char(listOf('A'..'C', 'X'..'Z'))는 동일한 확률로 A, B, C, X, Y, Z 값을 생성한다.
Arb.charArray(length, content) length는 배열의 길이를 생성하고 content는 배열의 내용을 생성하는 CharArray를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Constants
Arb.상수(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) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘ByteArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Arb.uByte(min, max) min에서 max(포함)까지 ‘UByte’를 생성하는 Arb를 반환한다. 극단적인 경우는 min, 1 및 max이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.uByteArray(length, content) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘UByteArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Shorts
Arb.short(min, max) min에서 max(포함)까지 ‘Short’를 생성하는 Arb를 반환한다. 극단적인 경우는 min, -1, 0, 1 및 max이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.긍정적Short(min, max) min에서 max(포함)까지 긍정적인 ‘Short’를 생성하는 Arb를 반환한다. 극단적인 경우는 1과 max이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.negativeShort(min, max) min에서 max(포함)까지 음의 ‘Short’를 생성하는 Arb를 반환한다. 극단적인 경우는 min 및 -1이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.shortArray(length, content) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘ShortArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Arb.uShort(min, max) min에서 max(포함)까지 ‘UShort’를 생성하는 Arb를 반환한다. 극단적인 경우는 min, 1 및 max이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.uShortArray(length, content) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘UShortArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Ints
Arb.int(min, max) min에서 max(포함)까지 ‘Int’를 생성하는 Arb를 반환한다. 극단적인 경우는 min, -1, 0, 1 및 max이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.긍정적Int(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) length는 배열의 길이를 생성하고 content는 배열의 내용을 생성하는 ‘IntArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Arb.uInt(min, max) min에서 max(포함)까지 ‘UInt’를 생성하는 Arb를 반환한다. 극단적인 경우는 min, 1 및 max이며 제공된 범위에 있는 경우에만 포함된다. ✓ ✓ ✓
Arb.uIntArray(length, content) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘UIntArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Exhaustive.ints(범위) 주어진 범위의 모든 정수를 반환한다. ✓ ✓ ✓
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.긍정적 길이(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) length는 배열의 길이를 생성하고 content는 배열의 내용을 생성하는 ULongArray를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Exhaustive.longs(범위) 주어진 범위의 모든 롱을 반환한다. ✓ ✓ ✓
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.긍정적Float(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) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘FloatArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
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.긍정적 더블(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) length는 배열의 길이를 생성하고 content는 배열의 콘텐츠를 생성하는 ‘DoubleArray’를 생성하는 Arb를 반환한다. ✓ ✓ ✓
Enums
Arb.enum<T>() 주어진 열거형에서 상수를 무작위로 선택한다. ✓ ✓ ✓
Exhaustive.enum<T>() 주어진 열거형에 정의된 모든 상수를 반복한다. ✓ ✓ ✓
Regional
localArb.() en_US 또는 ca_ES_VALENCIA와 같은 Java 형식으로 로케일을 생성한다. ✓ ✓ ✓
Arb.timezoneCodeThree() BST 또는 EST와 같은 ABC 형식으로 시간대를 생성한다. 가능한 모든 시간대를 포함하지 않으며 데이터 샘플링에만 사용된다. ✓ ✓ ✓
Arb.geoLocation() 지구본에 균일하게 분포된 임의의 위도/경도 지점을 사용하여 ‘GeoLocation’ 객체를 생성한다. ✓ ✓ ✓
Strings
Arb.string(range) 주어진 범위에서 무작위로 선택한 크기로 인쇄 가능한 무작위 문자열을 생성한다. 범위를 지정하지 않으면 (0..100)이 사용된다. 극단적인 경우에는 빈 문자열, 빈 문자열 및 유니코드 문자열이 포함된다. ✓ ✓ ✓
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) 주어진 두 개의 arb 각각에서 값을 가져온 다음 해당 값을 제공된 함수에 전달하여 값을 생성한다. ✓ ✓ ✓
Arb.bind(arbA, arbB, arbC, fn) 주어진 세 개의 Arb 각각에서 값을 가져온 다음 해당 값을 제공된 함수에 전달하여 값을 생성한다. ✓ ✓ ✓
Arb.bind(arbA, ...., fn) 주어진 각 arb에서 값을 가져온 다음 해당 값을 제공된 함수에 전달하여 값을 생성한다. ✓ ✓ ✓
Combinatorics
Arb.choice(arbs) 주어진 Arb 중 하나를 무작위로 선택한 후 이를 사용하여 다음 요소를 생성한다. ✓ ✓ ✓
Arb.choose(pairs) 가중치를 기준으로 값을 생성한다. 예를 들어 Arb.choose(1 to 'A', 2 to 'B')는 ‘A’를 33%, ‘B’를 66% 생성한다. ✓ ✓ ✓
Arb.주파수(list) 선택할 별칭 ✓ ✓ ✓
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) 주어진 컬렉션의 요소 중 하나를 무작위로 선택한다. ✓ ✓ ✓
Arb.element(vararg T) 가변 인수에서 요소 중 하나를 무작위로 선택한다. ✓ ✓ ✓
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) 목록의 각 요소를 하나씩 열거한다. ✓ ✓ ✓
Maps
Arb.map(Arb<Pair<K,V>>, minSize, maxSize) minSize와 maxSize 사이의 크기를 갖는 무작위 맵과 지정된 쌍 임의 선택에서 생성된 각 요소를 생성한다. ✓ ✓ ✓
Arb.map(Arb<K>, Arb<V>, minSize, maxSize) minSize와 maxSize 사이의 크기를 갖는 무작위 맵과 지정된 키 arb에서 생성된 각 키 및 지정된 값 arb에서 생성된 각 값을 생성한다. ✓ ✓ ✓
Tuples
Arb.pair(arb1, arb2) 제공된 두 개의 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) 지정된 범위에서 임의의 기간을 생성한다. ✓ ✓ ✓
Kotlinx 날짜/시간 io.kotest.extensions:kotest-property-datetime 모듈 필요
Arb.date(yearRange) 주어진 범위와 다른 필드 사이의 연도를 사용하여 LocalDate를 무작위로 생성한다. ✓ ✓ ✓
Arb.datetime(yearRange, hourRange, MinuteRange, secondRage) 주어진 범위의 모든 필드를 사용하여 LocalDateTime을 생성한다. ✓ ✓ ✓
Arb.instant(range) 주어진 범위에서 무작위로 생성된 에포크(epoch)로 Instant를 생성한다. ✓ ✓ ✓
Networking
Arb.ipAddressV4() abcd 형식으로 임의의 IP 주소를 생성한다. 여기서 각 부분은 0에서 255 사이이다. ✓ ✓ ✓

참조