Как указать @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 {}