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

            int n = 100000;

            double[] samples = GeneralizedBetaDistribution
                               .Random(alpha: 2, beta: 3, min: 10, max: 15, samples: n);

            for (int i = 0; i < samples.Length; i++)
            {
                Assert.IsTrue(samples[i] > 10);
                Assert.IsTrue(samples[i] < 15);
            }

            Assert.AreEqual(n, samples.Length);

            var actual = GeneralizedBetaDistribution.Estimate(samples, 10, 15,
                                                              new GeneralizedBetaOptions {
                Method = BetaEstimationMethod.MaximumLikelihood
            });

            Assert.AreEqual(2, actual.Alpha, 0.015);
            Assert.AreEqual(3, actual.Beta, 0.03);
        }
        public void BetaRandomTest()
        {
            Accord.Math.Tools.SetupGenerator(0);

            int n = 100000;

            double[] samples = GeneralizedBetaDistribution
                               .Random(alpha: 2, beta: 3, min: 0, max: 1, samples: n);

            Assert.AreEqual(n, samples.Length);

            var actual = GeneralizedBetaDistribution.Estimate(samples, 0, 1);

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

            int n = 100000;

            var beta = new GeneralizedBetaDistribution(alpha: 2, beta: 3, min: 0, max: 1);

            double[] samples = new double[n];

            for (int i = 0; i < n; i++)
            {
                samples[i] = beta.Generate();
            }

            var actual = GeneralizedBetaDistribution.Estimate(samples, 0, 1);

            Assert.AreEqual(2, actual.Alpha, 3e-2);
            Assert.AreEqual(3, actual.Beta, 3e-2);
        }