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."); }
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); }