Есть ли аннотация для аннотации @NegativeOrZero / @PositiveOrZero?
Согласно документации jqwik здесь: https://jqwik.net/docs/current/user-guide.html#integer-constraints , в ней указаны аннотации целочисленных ограничений как:
@Positive: Числа больше 0. Для всех целочисленных типов.
@Negative: Числа меньше 0. Для всех целочисленных типов.
и т.п.
Существуют ли какие-либо удобные аннотации для автоматического создания чего-то вроде @NegativeOrZero / @PositiveOrZero?
В настоящее время я использую следующий код:
@Provide
Arbitrary<Integer> negativeOrZero() {
return Arbitraries.integers().between(Integer.MIN_VALUE, 0);
}
Сокращенные аннотации определенно пригодятся, если они доступны по умолчанию.
1 ответ
Вы правы, jqwik не содержит этих аннотаций по умолчанию. Однако у вас есть несколько вариантов:
Использовать
@IntRange(min = 0)
Создайте свою более или менее тривиальную пользовательскую аннотацию:
@Target({ElementType.PARAMETER, ElementType.TYPE_USE}) @Retention(RetentionPolicy.RUNTIME) @IntRange(min = 0) @interface PositiveOrZero {}
Откройте запрос функции на https://github.com/jlink/jqwik/issues , если вы считаете, что это будет полезной готовой функцией.