Как сгенерировать положительный список целых чисел в jqwik и Kotlin?

Я пробовал что-то вроде этого, но похоже, что это не работает, так как я вижу негативы в сгенерированном списке:

      @Property
fun <testMethodName>(
  @ForAll @Size(min = 0, max = 1_500) 
  @Positive 
  @UniqueElements partials: List<@IntRange(min = 1, max = 10000) Int>
) = runTest { ... }

Я хотел создать следующее:

  1. Массив целых чисел
  2. список длиной от 0 до 1500
  3. значения каждого элемента должны быть уникальными
  4. значения элементов списка должны быть от 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 ?

Другие вопросы по тегам