// Path: datagen/src/main/java/io/qala/datagen/RandomShortApi.java
// public static String numeric(int exactLength) {
//     return length(exactLength).numeric();
// }


import java.util.stream.Stream;
import static io.qala.datagen.RandomShortApi.numeric;
package io.qala.datagen.junit.jupiter;



class NumericArgumentProvider extends RandomizedArgumentProvider<Numeric> {
    private Numeric annotation;

    @Override
    public void accept(Numeric annotation) {
        this.annotation = annotation;
    }

    @Override Stream<Object[]> getValueWithDescription() {
        return Stream.of(annotation).map(NumericArgumentProvider::generateParams);
    }
    @Override Stream<Object> getValue() {
        return Stream.of(annotation).map(NumericArgumentProvider::generateParam);
    }

    static String generateParam(Numeric annotation) {
// Path: datagen/src/main/java/io/qala/datagen/RandomShortApi.java
// public static String numeric(int exactLength) {
//     return length(exactLength).numeric();
// }


// Path: junit5/src/main/java/io/qala/datagen/junit/jupiter/NumericArgumentProvider.java
import java.util.stream.Stream;
import static io.qala.datagen.RandomShortApi.numeric;

package io.qala.datagen.junit.jupiter;



class NumericArgumentProvider extends RandomizedArgumentProvider<Numeric> {
    private Numeric annotation;

    @Override
    public void accept(Numeric annotation) {
        this.annotation = annotation;
    }

    @Override Stream<Object[]> getValueWithDescription() {
        return Stream.of(annotation).map(NumericArgumentProvider::generateParams);
    }
    @Override Stream<Object> getValue() {
        return Stream.of(annotation).map(NumericArgumentProvider::generateParam);
    }

    static String generateParam(Numeric annotation) {
        if (annotation.length() > 0) return numeric(annotation.length());