Exemplo n.º 1
0
        public void CanSampleSequence()
        {
            var n   = new Burr(1.0, 2.0, 2.0);
            var ied = n.Samples();

            GC.KeepAlive(ied.Take(5).ToArray());
        }
Exemplo n.º 2
0
        public void CanCreateBurrWithRandomSource()
        {
            var randomSource = new Numerics.Random.MersenneTwister(100);
            var n            = new Burr(1.0, 1.0, 0.5, randomSource);

            Assert.AreEqual(randomSource, n.RandomSource);
        }
Exemplo n.º 3
0
        public void ValidateDensityLn(double a, double c, double k, double x, double p)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(p, n.DensityLn(x), highPrecision);
            AssertHelpers.AlmostEqualRelative(p, Burr.PDFLn(a, c, k, x), highPrecision);
        }
Exemplo n.º 4
0
        public void ValidateCumulativeDistribution(double a, double c, double k, double x, double f)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(f, n.CumulativeDistribution(x), lowPrecision);
            AssertHelpers.AlmostEqualRelative(f, Burr.CDF(a, c, k, x), lowPrecision);
        }
Exemplo n.º 5
0
        public void ValidateToString()
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            var n = new Burr(1d, 2d, 3d);

            Assert.AreEqual("Burr(a = 1, c = 2, k = 3)", n.ToString());
        }
Exemplo n.º 6
0
        public void CanFillSampleArray()
        {
            double[] samples = new double[100];
            var      n       = new Burr(1.0, 2.0, 2.0, new Numerics.Random.MersenneTwister(100));

            n.Samples(samples);
            Assert.IsTrue(!samples.Any(x => x == 0));
        }
Exemplo n.º 7
0
        public void CanCreateBurr(double a, double c, double k)
        {
            var n = new Burr(a, c, k);

            Assert.AreEqual(a, n.A);
            Assert.AreEqual(c, n.C);
            Assert.AreEqual(k, n.K);
        }
Exemplo n.º 8
0
        public void ValidateSkewness(double a, double c, double k, double skewness)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(skewness, n.Skewness, lowPrecision);
        }
Exemplo n.º 9
0
 public void ValidateIsValidParameterSet(double a, double c, double k, bool validity)
 {
     Assert.AreEqual(Burr.IsValidParameterSet(a, c, k), validity);
 }
Exemplo n.º 10
0
 public void FailSampleSequenceStatic()
 {
     Assert.That(() => { var ied = Burr.Samples(new Numerics.Random.MersenneTwister(100), 1.0, -1.0, 2.0).First(); }, Throws.ArgumentException);
 }
Exemplo n.º 11
0
        public void CanSampleSequenceStatic()
        {
            var ied = Burr.Samples(new Numerics.Random.MersenneTwister(100), 1.0, 2.0, 2.0);

            GC.KeepAlive(ied.Take(5).ToArray());
        }
Exemplo n.º 12
0
        public void ValidateMinimum()
        {
            var n = new Burr(1.0, 2.0, 2.0);

            Assert.AreEqual(0.0, n.Minimum);
        }
Exemplo n.º 13
0
        public void ValidateStandardDeviation(double a, double c, double k, double std)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(std, n.StdDev, highPrecision);
        }
Exemplo n.º 14
0
        public void ValidateVariance(double a, double c, double k, double variance)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(variance, n.Variance, highPrecision);
        }
Exemplo n.º 15
0
        public void ValidateMean(double a, double c, double k, double mean)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(mean, n.Mean, highPrecision);
        }
Exemplo n.º 16
0
        public void ValidateMode(double a, double c, double k, double mode)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(mode, n.Mode, highPrecision);
        }
Exemplo n.º 17
0
 public void CanSampleStatic()
 {
     Burr.Sample(new Numerics.Random.MersenneTwister(100), 1.0, 2.0, 2.0);
 }
Exemplo n.º 18
0
 public void CanFillSampleArrayStatic()
 {
     double[] samples = new double[100];
     Burr.Samples(new Numerics.Random.MersenneTwister(100), samples, 1.0, 2.0, 2.0);
     Assert.IsTrue(!samples.Any(x => x == 0));
 }
Exemplo n.º 19
0
        public void ValidateMaximum()
        {
            var n = new Burr(1.0, 2.0, 1.0);

            Assert.AreEqual(double.PositiveInfinity, n.Maximum);
        }
Exemplo n.º 20
0
 public void FailFillingSampleArrayStatic()
 {
     double[] samples = new double[100];
     Assert.That(() => { Burr.Samples(new Numerics.Random.MersenneTwister(100), samples, -1.0, 2.0, 2.0); }, Throws.ArgumentException);
 }
Exemplo n.º 21
0
        public void ValidateEntropyFailsWithNotSupported(double a, double c, double k)
        {
            var n = new Burr(a, c, k);

            Assert.Throws <NotSupportedException>(() => { var x = n.Entropy; });
        }
Exemplo n.º 22
0
        public void CanSample()
        {
            var n = new Burr(1.0, 2.0, 2.0);

            n.Sample();
        }
Exemplo n.º 23
0
    private static void burr_cdf_test()

//****************************************************************************80
//
//  Purpose:
//
//    BURR_CDF_TEST tests BURR_CDF, BURR_CDF_INV, BURR_PDF;
//
//  Licensing:
//
//    This code is distributed under the GNU LGPL license.
//
//  Modified:
//
//    26 August 2006
//
//  Author:
//
//    John Burkardt
//
    {
        int i;
        int seed = 123456789;

        Console.WriteLine("");
        Console.WriteLine("BURR_CDF_TEST");
        Console.WriteLine("  BURR_CDF evaluates the Burr CDF;");
        Console.WriteLine("  BURR_CDF_INV inverts the Burr CDF.");
        Console.WriteLine("  BURR_PDF evaluates the Burr PDF;");

        const double a = 1.0;
        const double b = 2.0;
        const double c = 3.0;
        const double d = 2.0;

        Console.WriteLine("");
        Console.WriteLine("  PDF parameter A =      " + a + "");
        Console.WriteLine("  PDF parameter B =      " + b + "");
        Console.WriteLine("  PDF parameter C =      " + c + "");
        Console.WriteLine("  PDF parameter D =      " + d + "");

        if (!Burr.burr_check(a, b, c, d))
        {
            Console.WriteLine("");
            Console.WriteLine("BURR_CDF_TEST - Fatal error!");
            Console.WriteLine("  The parameters are not legal.");
            return;
        }

        Console.WriteLine("");
        Console.WriteLine("       X            PDF           CDF            CDF_INV");
        Console.WriteLine("");

        for (i = 1; i <= 10; i++)
        {
            double x   = Burr.burr_sample(a, b, c, d, ref seed);
            double pdf = Burr.burr_pdf(x, a, b, c, d);
            double cdf = Burr.burr_cdf(x, a, b, c, d);
            double x2  = Burr.burr_cdf_inv(cdf, a, b, c, d);

            Console.WriteLine("  "
                              + x.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + pdf.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + cdf.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "  "
                              + x2.ToString(CultureInfo.InvariantCulture).PadLeft(12) + "");
        }
    }
Exemplo n.º 24
0
        public void ValidateMoments(double a, double c, double k, int order, double value)
        {
            var n = new Burr(a, c, k);

            AssertHelpers.AlmostEqualRelative(value, n.GetMoment(order), lowPrecision);
        }
Exemplo n.º 25
0
        public void ValidateToString()
        {
            var n = new Burr(1d, 2d, 3d);

            Assert.AreEqual("Burr(a = 1, c = 2, k = 3)", n.ToString());
        }
Exemplo n.º 26
0
        public void ValidateGetMomentsFailsWithBadParameters(double a, double c, double k, double order)
        {
            var n = new Burr(a, c, k);

            Assert.That(() => n.GetMoment(order), Throws.ArgumentException);
        }
Exemplo n.º 27
0
    private static void burr_sample_test()

//****************************************************************************80
//
//  Purpose:
//
//    BURR_SAMPLE_TEST tests BURR_MEAN, BURR_SAMPLE, BURR_VARIANCE;
//
//  Licensing:
//
//    This code is distributed under the GNU LGPL license.
//
//  Modified:
//
//    26 August 2006
//
//  Author:
//
//    John Burkardt
//
    {
        const int SAMPLE_NUM = 1000;

        int i;
        int seed = 123456789;

        double[] x = new double [SAMPLE_NUM];

        Console.WriteLine("");
        Console.WriteLine("BURR_SAMPLE_TEST");
        Console.WriteLine("  BURR_MEAN computes the Burr mean;");
        Console.WriteLine("  BURR_SAMPLE samples the Burr distribution;");
        Console.WriteLine("  BURR_VARIANCE computes the Burr variance;");

        const double a = 1.0;
        const double b = 2.0;
        const double c = 3.0;
        const double d = 2.0;

        Console.WriteLine("");
        Console.WriteLine("  PDF parameter A =      " + a + "");
        Console.WriteLine("  PDF parameter B =      " + b + "");
        Console.WriteLine("  PDF parameter C =      " + c + "");
        Console.WriteLine("  PDF parameter D =      " + d + "");

        if (!Burr.burr_check(a, b, c, d))
        {
            Console.WriteLine("");
            Console.WriteLine("BURR_SAMPLE_TEST - Fatal error!");
            Console.WriteLine("  The parameters are not legal.");
            return;
        }

        double mean     = Burr.burr_mean(a, b, c, d);
        double variance = Burr.burr_variance(a, b, c, d);

        Console.WriteLine("");
        Console.WriteLine("  PDF mean =     " + mean + "");
        Console.WriteLine("  PDF variance = " + variance + "");

        for (i = 0; i < SAMPLE_NUM; i++)
        {
            x[i] = Burr.burr_sample(a, b, c, d, ref seed);
        }

        mean     = typeMethods.r8vec_mean(SAMPLE_NUM, x);
        variance = typeMethods.r8vec_variance(SAMPLE_NUM, x);
        double xmax = typeMethods.r8vec_max(SAMPLE_NUM, x);
        double xmin = typeMethods.r8vec_min(SAMPLE_NUM, x);

        Console.WriteLine("");
        Console.WriteLine("  Sample size =     " + SAMPLE_NUM + "");
        Console.WriteLine("  Sample mean =     " + mean + "");
        Console.WriteLine("  Sample variance = " + variance + "");
        Console.WriteLine("  Sample maximum =  " + xmax + "");
        Console.WriteLine("  Sample minimum =  " + xmin + "");
    }