All Downloads are FREE. Search and download functionalities are using the official Maven repository.

smallcheck.generators.TupleGenerator Maven / Gradle / Ivy

The newest version!
package smallcheck.generators;

import java.util.stream.Stream;

/**
 *
 */
public class TupleGenerator extends SeriesGen {

    // TODO add copy

    private SeriesGen[] gens;

    public TupleGenerator(SeriesGen... gens) {
        this.gens = gens;
    }

    @Override
    public Stream generate(int depth) {
        return generate(depth, 0);
    }

    private Stream generate(int depth, int start) {
        if (start >= gens.length) {
            return Stream.of(new Object[gens.length]);
        }
        SeriesGen seriesGen = gens[start];

        return seriesGen.generate(depth).flatMap(o ->
                generate(depth, start + 1).map(os -> {
                    os[start] = o;
                    return os;
                }));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy