public void BetaGenerateTest()
        {
            Accord.Math.Tools.SetupGenerator(0);

            int n = 100000;

            double[] samples = BetaDistribution
                               .Random(alpha: 2, beta: 3, samples: n);

            Assert.AreEqual(n, samples.Length);

            var actual = BetaDistribution.Estimate(samples);

            Assert.AreEqual(2, actual.Alpha, 1e-2);
            Assert.AreEqual(3, actual.Beta, 1e-2);
        }
        public void BetaGenerateTest3()
        {
            Accord.Math.Tools.SetupGenerator(0);

            int n = 1000000;

            double[] samples = BetaDistribution
                               .Random(alpha: 0.4, beta: 0.2, samples: n);

            Assert.AreEqual(n, samples.Length);

            var actual = BetaDistribution.Estimate(samples,
                                                   new BetaOptions {
                Method = BetaEstimationMethod.MaximumLikelihood
            });

            Assert.AreEqual(0.4, actual.Alpha, 0.005);
            Assert.AreEqual(0.2, actual.Beta, 0.003);
        }