Example #1
0
        public void Constructor_ExpectedValues(double succesProbability)
        {
            // Call
            var distribution = new BooleanProbabilityDistribution(succesProbability);

            // Assert
            Assert.AreEqual(succesProbability, distribution.SuccessProbability);
            Assert.AreEqual(1.0 - succesProbability, distribution.FailureProbability);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ThresholdCompare"/> class.
        /// </summary>
        /// <param name="die">The die whose result should be compared.</param>
        /// <param name="comparisonType">How the result of <paramref name="die"/> should be compared.</param>
        /// <param name="referenceValue">To what value <paramref name="die"/> should be compared.</param>
        /// <param name="rng">The random number generator.</param>
        public ThresholdCompare(IAbstractDie die, ComparisonType comparisonType, int referenceValue, IRandomNumberGenerator rng)
        {
            Debug.Assert(die != null, "The die cannot be null.");
            Debug.Assert(
                comparisonType == ComparisonType.Greater || comparisonType == ComparisonType.GreaterOrEqual ||
                comparisonType == ComparisonType.Smaller || comparisonType == ComparisonType.SmallerOrEqual,
                "The comparison type must be a known member.");
            Debug.Assert(rng != null, "The random number generator cannot be null.");

            this.die       = die;
            ComparisonType = comparisonType;
            ReferenceValue = referenceValue;
            this.rng       = rng;

            double successProbability = CreateProbabilityDistribution(die, comparisonType, referenceValue);

            ProbabilityDistribution = new BooleanProbabilityDistribution(successProbability);

            Debug.Assert(ProbabilityDistribution != null, "The property ProbabilityDistribution should be initialized.");
        }
Example #3
0
        public void ProbabilityDistribution_DieGreaterThanOrEqualToReferenceValue_ReturnExpectedResult(
            int referenceValue, double expectedSuccessProbability)
        {
            // Setup
            var rng = MockRepository.GenerateStub <IRandomNumberGenerator>();

            var spec = new[]
            {
                new ValueProbabilityPair(1, 0.25),
                new ValueProbabilityPair(4, 0.5),
                new ValueProbabilityPair(8, 0.25),
            };
            var die = MockRepository.GenerateStub <IAbstractDie>();

            die.Stub(d => d.ProbabilityDistribution).Return(new DiscreteValueProbabilityDistribution(spec));

            var thresholdCompare = new ThresholdCompare(die, ComparisonType.GreaterOrEqual, referenceValue, rng);

            // Call
            BooleanProbabilityDistribution distribution = thresholdCompare.ProbabilityDistribution;

            // Assert
            Assert.AreEqual(expectedSuccessProbability, distribution.SuccessProbability);
        }