public static <P> void printDistributions(
		final PrintStream writer,
		final List<P> parameters,
		final Function<P, Selector<DoubleGene, Double>> selector,
		final Optimize opt,
		final int populationCount,
		final int loops
	) {
		final List<RunnableObservation> observations = observations(
			parameters,
			selector,
			opt,
			populationCount,
			loops
		);
		final List<Histogram> histograms = observations.stream()
			.peek(RunnableObservation::run)
			.map(Observation::histogram)
			.toList();

		final List<Selector<?, ?>> selectors = parameters.stream()
			.map(selector)
			.collect(Collectors.toList());

		print(writer, opt, selectors, parameters, histograms, populationCount, loops);
	}
Print the distributions, each for every parameter.

@param writer the print writer where the histograms are printed
@param parameters the selector creation parameters
@param selector the selector factory
@param opt the optimization strategy
@param populationCount the number of individuals for the test population
@param loops the number of selections performed for one population
@param <P> the parameter type
jenetics/src/test/java/io/jenetics/SelectorTester.java