This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-statistics.git
commit e91e4c49903471d05b40cf377d0da24f4583d230 Author: Alex Herbert <[email protected]> AuthorDate: Fri Sep 18 20:55:29 2026 +0100 Add sample command to distribution example application --- .../examples-distribution/HOWTO.md | 1 + .../examples-distribution/pom.xml | 8 +++-- .../AbstractContinuousDistributionCommand.java | 4 +++ .../AbstractDiscreteDistributionCommand.java | 4 +++ .../examples/distribution/BetaCommand.java | 15 ++++++++ .../examples/distribution/BinomialCommand.java | 15 ++++++++ .../examples/distribution/CauchyCommand.java | 15 ++++++++ .../examples/distribution/ChiSquaredCommand.java | 15 ++++++++ .../examples/distribution/DistributionUtils.java | 40 ++++++++++++++++++++++ .../examples/distribution/ExpCommand.java | 15 ++++++++ .../statistics/examples/distribution/FCommand.java | 15 ++++++++ .../examples/distribution/FoldedNormalCommand.java | 15 ++++++++ .../examples/distribution/GammaCommand.java | 15 ++++++++ .../examples/distribution/GeometricCommand.java | 15 ++++++++ .../examples/distribution/GumbelCommand.java | 15 ++++++++ .../distribution/HypergeometricCommand.java | 15 ++++++++ .../examples/distribution/LaplaceCommand.java | 15 ++++++++ .../examples/distribution/LevyCommand.java | 15 ++++++++ .../examples/distribution/LogNormalCommand.java | 15 ++++++++ .../examples/distribution/LogUniformCommand.java | 15 ++++++++ .../examples/distribution/LogisticCommand.java | 15 ++++++++ .../examples/distribution/NakagamiCommand.java | 15 ++++++++ .../examples/distribution/NormalCommand.java | 15 ++++++++ .../examples/distribution/ParetoCommand.java | 15 ++++++++ .../examples/distribution/PascalCommand.java | 15 ++++++++ .../examples/distribution/PoissonCommand.java | 15 ++++++++ .../examples/distribution/SampleOptions.java | 38 ++++++++++++++++++++ .../statistics/examples/distribution/TCommand.java | 15 ++++++++ .../examples/distribution/TrapezoidalCommand.java | 15 ++++++++ .../examples/distribution/TriangularCommand.java | 15 ++++++++ .../distribution/TruncatedNormalCommand.java | 15 ++++++++ .../distribution/UniformContinuousCommand.java | 15 ++++++++ .../distribution/UniformDiscreteCommand.java | 15 ++++++++ .../examples/distribution/WeibullCommand.java | 15 ++++++++ .../examples/distribution/ZetaCommand.java | 15 ++++++++ .../examples/distribution/ZipfCommand.java | 15 ++++++++ 36 files changed, 543 insertions(+), 2 deletions(-) diff --git a/commons-statistics-examples/examples-distribution/HOWTO.md b/commons-statistics-examples/examples-distribution/HOWTO.md index 5f26e546..7517c1d3 100644 --- a/commons-statistics-examples/examples-distribution/HOWTO.md +++ b/commons-statistics-examples/examples-distribution/HOWTO.md @@ -37,6 +37,7 @@ named by the command. Each distribution command has the following functions: | Function | Description | | -------- | ----------- | | info | Information on the domain, mean and variance | +| sample | Sample from the distribution | | pdf | Probability Density Function (continuous distributions) | | pmf | Probability Mass Function (discrete distributions) | | cdf | Cumulative Probability Density Function | diff --git a/commons-statistics-examples/examples-distribution/pom.xml b/commons-statistics-examples/examples-distribution/pom.xml index 5c10d099..dc807f3e 100644 --- a/commons-statistics-examples/examples-distribution/pom.xml +++ b/commons-statistics-examples/examples-distribution/pom.xml @@ -48,8 +48,12 @@ <dependencies> <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-statistics-distribution</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-statistics-distribution</artifactId> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-rng-simple</artifactId> </dependency> <dependency> <groupId>info.picocli</groupId> diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java index e79ab7e4..8bd21af1 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractContinuousDistributionCommand.java @@ -57,6 +57,10 @@ abstract class AbstractContinuousDistributionCommand implements Callable<Void> { DistributionUtils.infoContinuous(distributions, outputOptions); return null; } + if ("Sample".equals(name)) { + DistributionUtils.sampleContinuous(distributions, (SampleOptions) outputOptions); + return null; + } // Assume this is an evaluation of the distribution final DistributionOptions distributionOptions = (DistributionOptions) outputOptions; diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java index b4e77340..fb542d01 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/AbstractDiscreteDistributionCommand.java @@ -57,6 +57,10 @@ abstract class AbstractDiscreteDistributionCommand implements Callable<Void> { DistributionUtils.infoDiscrete(distributions, outputOptions); return null; } + if ("Sample".equals(name)) { + DistributionUtils.sampleDiscrete(distributions, (SampleOptions) outputOptions); + return null; + } // Assume this is an evaluation of the distribution final DistributionOptions distributionOptions = (DistributionOptions) outputOptions; diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java index 1f4ab88e..442df105 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BetaCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Beta distribution.", subcommands = { BetaCommand.Info.class, + BetaCommand.Sample.class, BetaCommand.Check.class, BetaCommand.PDF.class, BetaCommand.LPDF.class, @@ -129,6 +130,20 @@ class BetaCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Beta distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java index e66918dc..8057d4d5 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/BinomialCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Binomial distribution.", subcommands = { BinomialCommand.Info.class, + BinomialCommand.Sample.class, BinomialCommand.Check.class, BinomialCommand.PMF.class, BinomialCommand.LPMF.class, @@ -130,6 +131,20 @@ class BinomialCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Binomial distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java index 25fe5c20..a9bcf659 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/CauchyCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Cauchy distribution.", subcommands = { CauchyCommand.Info.class, + CauchyCommand.Sample.class, CauchyCommand.Check.class, CauchyCommand.PDF.class, CauchyCommand.LPDF.class, @@ -129,6 +130,20 @@ class CauchyCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Cauchy distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java index 7d7d8026..c1296673 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ChiSquaredCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Chi-squared distribution.", subcommands = { ChiSquaredCommand.Info.class, + ChiSquaredCommand.Sample.class, ChiSquaredCommand.Check.class, ChiSquaredCommand.PDF.class, ChiSquaredCommand.LPDF.class, @@ -116,6 +117,20 @@ class ChiSquaredCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Chi-squared distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java index f1e19237..d14d3d3f 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/DistributionUtils.java @@ -38,6 +38,8 @@ final class DistributionUtils { private static final double MAX_RELATIVE_ERROR = 1e-6; /** Maximum absolute error for equality to 0 or 1 for a probability. */ private static final double DELTA_P = 1e-6; + /** Header format for the sample output. */ + private static final String SAMPLE_HEADER = "# %s %s%n"; /** No public construction. */ private DistributionUtils() {} @@ -395,6 +397,44 @@ final class DistributionUtils { return format; } + /** + * Sample the continuous distribution. + * + * @param dist Distributions + * @param outputOptions Output options + */ + static void sampleContinuous(List<Distribution<ContinuousDistribution>> dist, SampleOptions outputOptions) { + try (PrintWriter out = createOutput(outputOptions.outputFile)) { + dist.forEach(d -> { + final ContinuousDistribution dd = d.getDistribution(); + final ContinuousDistribution.Sampler s = dd.createSampler(outputOptions.source.create()); + out.printf(SAMPLE_HEADER, dd.getClass().getSimpleName(), d.getParameters()); + for (int i = outputOptions.samples; i > 0; i--) { + out.println(s.sample()); + } + }); + } + } + + /** + * Sample the discrete distribution. + * + * @param dist Distributions + * @param outputOptions Output options + */ + static void sampleDiscrete(List<Distribution<DiscreteDistribution>> dist, SampleOptions outputOptions) { + try (PrintWriter out = createOutput(outputOptions.outputFile)) { + dist.forEach(d -> { + final DiscreteDistribution dd = d.getDistribution(); + final DiscreteDistribution.Sampler s = dd.createSampler(outputOptions.source.create()); + out.printf(SAMPLE_HEADER, dd.getClass().getSimpleName(), d.getParameters()); + for (int i = outputOptions.samples; i > 0; i--) { + out.println(s.sample()); + } + }); + } + } + /** * Creates the output. * diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java index 8ed10bbf..c05ae52e 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ExpCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Exponential distribution.", subcommands = { ExpCommand.Info.class, + ExpCommand.Sample.class, ExpCommand.Check.class, ExpCommand.PDF.class, ExpCommand.LPDF.class, @@ -115,6 +116,20 @@ class ExpCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Exponential distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java index d327628e..5dbccf80 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "F distribution.", subcommands = { FCommand.Info.class, + FCommand.Sample.class, FCommand.Check.class, FCommand.PDF.class, FCommand.LPDF.class, @@ -129,6 +130,20 @@ class FCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "F distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java index 80d2bba1..4a23076a 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/FoldedNormalCommand.java @@ -34,6 +34,7 @@ import picocli.CommandLine.Option; description = "Folded normal distribution.", subcommands = { FoldedNormalCommand.Info.class, + FoldedNormalCommand.Sample.class, FoldedNormalCommand.Check.class, FoldedNormalCommand.PDF.class, FoldedNormalCommand.LPDF.class, @@ -132,6 +133,20 @@ class FoldedNormalCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Folded normal distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java index 59b0f516..2d0fba2c 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GammaCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Gamma distribution.", subcommands = { GammaCommand.Info.class, + GammaCommand.Sample.class, GammaCommand.Check.class, GammaCommand.PDF.class, GammaCommand.LPDF.class, @@ -130,6 +131,20 @@ class GammaCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Gamma distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java index 9bc4084d..9e72c6d3 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GeometricCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Geometric distribution.", subcommands = { GeometricCommand.Info.class, + GeometricCommand.Sample.class, GeometricCommand.Check.class, GeometricCommand.PMF.class, GeometricCommand.LPMF.class, @@ -116,6 +117,20 @@ class GeometricCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Geometric distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java index 7edd35c3..e054bef5 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/GumbelCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Gumbel distribution.", subcommands = { GumbelCommand.Info.class, + GumbelCommand.Sample.class, GumbelCommand.Check.class, GumbelCommand.PDF.class, GumbelCommand.LPDF.class, @@ -129,6 +130,20 @@ class GumbelCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Gumbel distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java index d6f255c2..a884b662 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/HypergeometricCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Hypergeometric distribution.", subcommands = { HypergeometricCommand.Info.class, + HypergeometricCommand.Sample.class, HypergeometricCommand.Check.class, HypergeometricCommand.PMF.class, HypergeometricCommand.LPMF.class, @@ -141,6 +142,20 @@ class HypergeometricCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Hypergeometric distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java index 97731bc1..d69d404c 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LaplaceCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Laplace distribution.", subcommands = { LaplaceCommand.Info.class, + LaplaceCommand.Sample.class, LaplaceCommand.Check.class, LaplaceCommand.PDF.class, LaplaceCommand.LPDF.class, @@ -129,6 +130,20 @@ class LaplaceCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Laplace distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java index a2b3db57..34d43edf 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LevyCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Levy distribution.", subcommands = { LevyCommand.Info.class, + LevyCommand.Sample.class, LevyCommand.Check.class, LevyCommand.PDF.class, LevyCommand.LPDF.class, @@ -129,6 +130,20 @@ class LevyCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Levy distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java index e31656d0..36f10415 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogNormalCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Log-normal distribution.", subcommands = { LogNormalCommand.Info.class, + LogNormalCommand.Sample.class, LogNormalCommand.Check.class, LogNormalCommand.PDF.class, LogNormalCommand.LPDF.class, @@ -130,6 +131,20 @@ class LogNormalCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Log-normal distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java index fc44ee70..daa7aa31 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogUniformCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Log uniform distribution.", subcommands = { LogUniformCommand.Info.class, + LogUniformCommand.Sample.class, LogUniformCommand.Check.class, LogUniformCommand.PDF.class, LogUniformCommand.LPDF.class, @@ -132,6 +133,20 @@ class LogUniformCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Log uniform distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java index e857bafe..c4fd7e15 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/LogisticCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Logistic distribution.", subcommands = { LogisticCommand.Info.class, + LogisticCommand.Sample.class, LogisticCommand.Check.class, LogisticCommand.PDF.class, LogisticCommand.LPDF.class, @@ -129,6 +130,20 @@ class LogisticCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Logistic distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java index ef01f03a..844710d7 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NakagamiCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Nakagami distribution.", subcommands = { NakagamiCommand.Info.class, + NakagamiCommand.Sample.class, NakagamiCommand.Check.class, NakagamiCommand.PDF.class, NakagamiCommand.LPDF.class, @@ -129,6 +130,20 @@ class NakagamiCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Nakagami distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java index 3b5048e4..6e65b1d7 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/NormalCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Normal distribution.", subcommands = { NormalCommand.Info.class, + NormalCommand.Sample.class, NormalCommand.Check.class, NormalCommand.PDF.class, NormalCommand.LPDF.class, @@ -131,6 +132,20 @@ class NormalCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Normal distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java index d0fb0df0..b72cec24 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ParetoCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Pareto distribution.", subcommands = { ParetoCommand.Info.class, + ParetoCommand.Sample.class, ParetoCommand.Check.class, ParetoCommand.PDF.class, ParetoCommand.LPDF.class, @@ -130,6 +131,20 @@ class ParetoCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Pareto distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java index 8beb1c3c..d2d71a3e 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PascalCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Pascal distribution.", subcommands = { PascalCommand.Info.class, + PascalCommand.Sample.class, PascalCommand.Check.class, PascalCommand.PMF.class, PascalCommand.LPMF.class, @@ -133,6 +134,20 @@ class PascalCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Pascal distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java index 00a81908..5facfcf5 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/PoissonCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Poisson distribution.", subcommands = { PoissonCommand.Info.class, + PoissonCommand.Sample.class, PoissonCommand.Check.class, PoissonCommand.PMF.class, PoissonCommand.LPMF.class, @@ -116,6 +117,20 @@ class PoissonCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Poisson distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/SampleOptions.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/SampleOptions.java new file mode 100644 index 00000000..7e2b1eae --- /dev/null +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/SampleOptions.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.statistics.examples.distribution; + +import org.apache.commons.rng.simple.RandomSource; +//import org.apache.commons.rng.simple.RandomSource; +import picocli.CommandLine.Option; + +/** + * Standard options for distribution commands. + */ +class SampleOptions extends OutputOptions { + + /** The number of samples. */ + @Option(names = { "--samples" }, + paramLabel = "n", + description = {"Number of samples."}) + protected int samples = 10; + + /** The source of randomness. */ + @Option(names = { "--rng" }, + description = {"Source of randomness."}) + protected RandomSource source = RandomSource.L128_X256_MIX; +} diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java index dc096138..1f2b3616 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "T distribution.", subcommands = { TCommand.Info.class, + TCommand.Sample.class, TCommand.Check.class, TCommand.PDF.class, TCommand.LPDF.class, @@ -115,6 +116,20 @@ class TCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "T distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java index 34780978..f2ffe972 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TrapezoidalCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Trapezoidal distribution.", subcommands = { TrapezoidalCommand.Info.class, + TrapezoidalCommand.Sample.class, TrapezoidalCommand.Check.class, TrapezoidalCommand.PDF.class, TrapezoidalCommand.LPDF.class, @@ -152,6 +153,20 @@ class TrapezoidalCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Trapezoidal distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java index 4a58f75d..879568e6 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TriangularCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Triangular distribution.", subcommands = { TriangularCommand.Info.class, + TriangularCommand.Sample.class, TriangularCommand.Check.class, TriangularCommand.PDF.class, TriangularCommand.LPDF.class, @@ -142,6 +143,20 @@ class TriangularCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Triangular distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java index 1cbe434a..30f4a543 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/TruncatedNormalCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Truncated normal distribution.", subcommands = { TruncatedNormalCommand.Info.class, + TruncatedNormalCommand.Sample.class, TruncatedNormalCommand.Check.class, TruncatedNormalCommand.PDF.class, TruncatedNormalCommand.LPDF.class, @@ -154,6 +155,20 @@ class TruncatedNormalCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Truncated normal distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java index f5ff918a..58a4bd7a 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformContinuousCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Continuous uniform distribution.", subcommands = { UniformContinuousCommand.Info.class, + UniformContinuousCommand.Sample.class, UniformContinuousCommand.Check.class, UniformContinuousCommand.PDF.class, UniformContinuousCommand.LPDF.class, @@ -132,6 +133,20 @@ class UniformContinuousCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Continuous uniform distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java index d164741a..84394f1b 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/UniformDiscreteCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Discrete uniform distribution.", subcommands = { UniformDiscreteCommand.Info.class, + UniformDiscreteCommand.Sample.class, UniformDiscreteCommand.Check.class, UniformDiscreteCommand.PMF.class, UniformDiscreteCommand.LPMF.class, @@ -131,6 +132,20 @@ class UniformDiscreteCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Discrete uniform distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java index 734b5944..8b558f58 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/WeibullCommand.java @@ -32,6 +32,7 @@ import picocli.CommandLine.Option; description = "Weibull distribution.", subcommands = { WeibullCommand.Info.class, + WeibullCommand.Sample.class, WeibullCommand.Check.class, WeibullCommand.PDF.class, WeibullCommand.LPDF.class, @@ -130,6 +131,20 @@ class WeibullCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Weibull distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java index fcf7fab0..7bbed635 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZetaCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Zeta distribution.", subcommands = { ZetaCommand.Info.class, + ZetaCommand.Sample.class, ZetaCommand.Check.class, ZetaCommand.PMF.class, ZetaCommand.LPMF.class, @@ -115,6 +116,20 @@ class ZetaCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Zeta distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true, diff --git a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java index a2d84efa..f6c2760f 100644 --- a/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java +++ b/commons-statistics-examples/examples-distribution/src/main/java/org/apache/commons/statistics/examples/distribution/ZipfCommand.java @@ -31,6 +31,7 @@ import picocli.CommandLine.Option; description = "Zipf distribution.", subcommands = { ZipfCommand.Info.class, + ZipfCommand.Sample.class, ZipfCommand.Check.class, ZipfCommand.PMF.class, ZipfCommand.LPMF.class, @@ -129,6 +130,20 @@ class ZipfCommand extends AbstractDistributionCommand { } } + /** Information command. */ + @Command(name = "sample", + description = "Zipf distribution sample.") + static class Sample extends BaseCommand { + /** The distribution options. */ + @ArgGroup(validate = false, heading = HEADING_EVALUATION_OPTIONS, order = 2) + private SampleOptions distributionOptions = new SampleOptions(); + + @Override + protected OutputOptions getOutputOptions() { + return distributionOptions; + } + } + /** Verification checks command. */ @Command(name = "check", hidden = true,
