Exemple #1
0
        // Function that distributes people according to defined peaks
        static int[] DistributePeople(double totalPeople, double peaks)
        {
            double averagePeak = totalPeople / peaks;
            int    peakHeight  = (int)Math.Ceiling(averagePeak);                         // Average people in peak
            int    finalPeak   = (int)(peakHeight + (totalPeople - peakHeight * peaks)); // Adjust final peak

            return(FixedDistribution.GetDistribution(peaks, peakHeight, finalPeak));
        }
        public void FixedDistribution_Result()
        {
            FixedDistribution distr = new FixedDistribution(new double[] { 1, 2, 3, 4, 5 });

            Assert.AreEqual(distr.GetResult()[0], 1);
            Assert.AreEqual(distr.GetResult()[1], 2);
            Assert.AreEqual(distr.GetResult()[2], 3);
            Assert.AreEqual(distr.GetResult()[3], 4);
            Assert.AreEqual(distr.GetResult()[4], 5);
        }
Exemple #3
0
        public void MaxMin()
        {
            Distribution distr    = new FixedDistribution(1.0, 2.0, 3.0, 4.0, 5.0);
            var          qrtValue = (QrtValue)distr;

            Assert.AreEqual(5.0, qrtValue.Maximum);
            Assert.AreEqual(1.0, qrtValue.Minimum);

            qrtValue = (QrtValue)10;
            Assert.AreEqual(10.0, qrtValue.Maximum);
            Assert.AreEqual(10.0, qrtValue.Minimum);
        }
Exemple #4
0
        public void RawVector()
        {
            Distribution distr = new FixedDistribution(1.0, 2.0, 3.0, 4.0, 5.0);

            var qrtValue = (QrtValue)distr;

            Simulation.NumberOfSamples = 5;

            Assert.AreEqual(distr.GetResult(), qrtValue.RawVector);

            qrtValue = (QrtValue)5.0;

            Assert.AreEqual(Vector <double> .Build.Dense(5, 5.0), qrtValue.RawVector);
        }
Exemple #5
0
        public void Division()
        {
            Simulation.NumberOfSamples = 5;
            var d1 = new FixedDistribution(2, 2, 2, 2, 2);
            var d2 = new FixedDistribution(3, 3, 3, 3, 3);
            var d3 = new FixedDistribution(6, 6, 6, 6, 6);

            var r1 = d3 / d2;

            Assert.AreEqual(r1.GetResult(), d1.GetResult());

            var r2 = d3 / 3;

            Assert.AreEqual(r2.GetResult(), d1.GetResult());

            var r3 = 6 / d2;

            Assert.AreEqual(r3.GetResult(), d1.GetResult());
        }
Exemple #6
0
        public void Multiplication()
        {
            Simulation.NumberOfSamples = 5;
            var d1 = new FixedDistribution(2, 2, 2, 2, 2);
            var d2 = new FixedDistribution(3, 3, 3, 3, 3);
            var d3 = new FixedDistribution(6, 6, 6, 6, 6);

            var r1 = d1 * d2;

            Assert.AreEqual(r1.GetResult(), d3.GetResult());

            var r2 = d1 * 3;

            Assert.AreEqual(r2.GetResult(), d3.GetResult());

            var r3 = 3 * d1;

            Assert.AreEqual(r3.GetResult(), d3.GetResult());
        }
Exemple #7
0
        public void Subtraction()
        {
            Simulation.NumberOfSamples = 5;
            var d1 = new FixedDistribution(1, 1, 1, 1, 1);
            var d2 = new FixedDistribution(2, 2, 2, 2, 2);
            var d3 = new FixedDistribution(3, 3, 3, 3, 3);

            var r1 = d3 - d2;

            Assert.AreEqual(r1.GetResult(), d1.GetResult());

            var r2 = d3 - 2;

            Assert.AreEqual(r2.GetResult(), d1.GetResult());

            var r3 = 3 - d2;

            Assert.AreEqual(r3.GetResult(), d1.GetResult());
        }
Exemple #8
0
        public void Addition()
        {
            Simulation.NumberOfSamples = 5;
            var d1 = new FixedDistribution(1, 1, 1, 1, 1);
            var d2 = new FixedDistribution(2, 2, 2, 2, 2);
            var d3 = new FixedDistribution(3, 3, 3, 3, 3);

            var r1 = d1 + d2;

            Assert.AreEqual(r1.GetResult(), d3.GetResult());

            var r2 = d1 + 2;

            Assert.AreEqual(r2.GetResult(), d3.GetResult());

            var r3 = 2 + d1;

            Assert.AreEqual(r3.GetResult(), d3.GetResult());
        }
        public void DistributionOperators()
        {
            FixedDistribution fixedDistr = new FixedDistribution(new double[] { 1, 2, 3 });

            // Distribution + Distribution
            var result = fixedDistr + fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 2);
            Assert.AreEqual(result.GetResult()[1], 4);
            Assert.AreEqual(result.GetResult()[2], 6);

            // Distribution + double
            result = fixedDistr + 2.0;

            Assert.AreEqual(result.GetResult()[0], 3);
            Assert.AreEqual(result.GetResult()[1], 4);
            Assert.AreEqual(result.GetResult()[2], 5);

            // double + distribution
            result = 2.0 + fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 3);
            Assert.AreEqual(result.GetResult()[1], 4);
            Assert.AreEqual(result.GetResult()[2], 5);

            // Distribution - Distribution
            result = fixedDistr - fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 0);
            Assert.AreEqual(result.GetResult()[1], 0);
            Assert.AreEqual(result.GetResult()[2], 0);

            // Distribution - double
            result = fixedDistr - 2.0;

            Assert.AreEqual(result.GetResult()[0], -1);
            Assert.AreEqual(result.GetResult()[1], 0);
            Assert.AreEqual(result.GetResult()[2], 1);

            // double - distribution
            result = 2.0 - fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 1);
            Assert.AreEqual(result.GetResult()[1], 0);
            Assert.AreEqual(result.GetResult()[2], -1);

            // distribution * distribution
            result = fixedDistr * fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 1);
            Assert.AreEqual(result.GetResult()[1], 4);
            Assert.AreEqual(result.GetResult()[2], 9);

            // Distribution * double
            result = fixedDistr * 2.0;

            Assert.AreEqual(result.GetResult()[0], 2);
            Assert.AreEqual(result.GetResult()[1], 4);
            Assert.AreEqual(result.GetResult()[2], 6);

            // double * distribution
            result = 2.0 * fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 2);
            Assert.AreEqual(result.GetResult()[1], 4);
            Assert.AreEqual(result.GetResult()[2], 6);

            // distribution / distribution
            result = fixedDistr / fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 1);
            Assert.AreEqual(result.GetResult()[1], 1);
            Assert.AreEqual(result.GetResult()[2], 1);

            // Distribution / double
            result = fixedDistr / 2.0;

            Assert.AreEqual(result.GetResult()[0], 1.0 / 2.0);
            Assert.AreEqual(result.GetResult()[1], 2.0 / 2.0);
            Assert.AreEqual(result.GetResult()[2], 3.0 / 2.0);

            // double / distribution
            result = 2.0 / fixedDistr;

            Assert.AreEqual(result.GetResult()[0], 2.0 / 1.0);
            Assert.AreEqual(result.GetResult()[1], 2.0 / 2.0);
            Assert.AreEqual(result.GetResult()[2], 2.0 / 3.0);
        }