Есть ли аннотация для аннотации @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 не содержит этих аннотаций по умолчанию. Однако у вас есть несколько вариантов:

  1. Использовать @IntRange(min = 0)

  2. Создайте свою более или менее тривиальную пользовательскую аннотацию:

            @Target({ElementType.PARAMETER, ElementType.TYPE_USE})
    @Retention(RetentionPolicy.RUNTIME)
    @IntRange(min = 0) 
    @interface PositiveOrZero {}
    
  3. Откройте запрос функции на https://github.com/jlink/jqwik/issues , если вы считаете, что это будет полезной готовой функцией.

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