Как указать @ForAll ненулевые целые числа?

Как я могу указать @ForAll ненулевые целые числа (т.е. либо включать как положительные, так и отрицательные целые числа, либо исключать 0из целочисленного диапазона)? Я ничего не нашел в https://jqwik.net/docs/current/user-guide.html#integer-constraints.

2 ответа

После того, как я еще немного пролистал Руководство пользователя , я получил @ForAll("nonZeroIntegers") int i со следующим, чтобы работать (но я открыт для лучших решений):

      @Provide
Arbitrary<Integer> nonZeroIntegers() {
    return Arbitraries.oneOf(Arbitraries.integers().greaterOrEqual(1),
                             Arbitraries.integers().lessOrEqual(-1));
}

Подобно ответу в разделе Есть ли аннотация для аннотации @NegativeOrZero / @PositiveOrZero?создать собственную аннотацию довольно просто:

      @Target({ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Positive
@Negative
@interface NonZero {}
Другие вопросы по тегам