Как сгенерировать положительный список целых чисел в jqwik и Kotlin?
Я пробовал что-то вроде этого, но похоже, что это не работает, так как я вижу негативы в сгенерированном списке:
@Property
fun <testMethodName>(
@ForAll @Size(min = 0, max = 1_500)
@Positive
@UniqueElements partials: List<@IntRange(min = 1, max = 10000) Int>
) = runTest { ... }
Я хотел создать следующее:
- Массив целых чисел
- список длиной от 0 до 1500
- значения каждого элемента должны быть уникальными
- значения элементов списка должны быть от 1 до 10000
1 ответ
Следующий код работает с jqwik 1.7.2 на моем компьютере:
import net.jqwik.api.ForAll
import net.jqwik.api.Property
import net.jqwik.api.constraints.Size
import net.jqwik.api.constraints.UniqueElements
import net.jqwik.kotlin.api.JqwikIntRange
class KotlinExperiments {
@Property
fun testMethodName(
@ForAll @Size(min = 0, max = 1_500)
@UniqueElements partials: List<@JqwikIntRange(min = 1, max = 10000) Int>
) {
println(partials)
}
}
JqwikIntRange
это псевдоним дляnet.jqwik.api.constraints.IntRange
так как в библиотеке Kotlin есть свояIntRange
сорт.
Если это не работает для вас, проверьте, выполнили ли вы необходимую настройку для Kotlin ?