예제 #1
0
        public void GenerateTest2(double[] distribution)
        {
            RandomGeneratorImpl r = new RandomGeneratorImpl(distribution);

            int TOTAL = 10000;

            for (int i = 0; i < TOTAL; i++)
            {
                var random = r.Generate();
                NUnit.Framework.Assert.AreEqual(-1, random);
            }
        }
예제 #2
0
        public void GenerateTest(double[] distribution)
        {
            RandomGeneratorImpl r = new RandomGeneratorImpl(distribution);

            double[] result = new double[distribution.Length];
            double   total  = distribution.Sum();

            int    TOTAL = 10000;
            double DELTA = 0.1;

            for (int i = 0; i < TOTAL; i++)
            {
                var random = r.Generate();
                result[random]++;
            }

            for (int i = 0; i < distribution.Length; i++)
            {
                var expected = distribution[i] / total;
                var actual   = result[i] / TOTAL;

                NUnit.Framework.Assert.AreEqual(expected, actual, DELTA);
            }
        }