public void ShouldThrowExceptionWhenOptionsChangedAfterGetValuesInvoked() { _subject = new RangeDomainSegment(_mockRandom.Object, 0, 10); _subject.GetValues(_subject.MaxNumberOfValuesInSegment); Assert.Throws(typeof(NotSupportedException), () => _subject.SetMaximumAllowedValue(100)); }
public void ShouldProduceValuesWithConditionBoundToDomain() { _subject = new RangeDomainSegment(new Random800_90(), 8, 128, 8); var values = _subject.GetValues(v => v > 64, 10); Assert.IsTrue(values.All(a => a % 8 == 0)); }
public void ShouldThrowExceptionWhenChangingOptionsAfterGetValues() { _subject = new RangeDomainSegment(_mockRandom.Object, 0, 10); _subject.SegmentValueOptions = RangeDomainSegmentOptions.Sequential; _subject.GetValues(_subject.MaxNumberOfValuesInSegment); Assert.Throws(typeof(NotSupportedException), () => _subject.SegmentValueOptions = RangeDomainSegmentOptions.Sequential); }
public void ShouldAlwaysPullMaximumNumberOfValuesWithACondition(int min, int max, int increment) { _subject = new RangeDomainSegment(new Random800_90(), min, max, increment) { SegmentValueOptions = RangeDomainSegmentOptions.Random }; for (var i = 0; i < 100; i++) { var result = _subject.GetValues(v => v % 128 == 0, 5); Assert.AreEqual(result.Count(), 5, "pulled not enough mod 128"); } for (var i = 0; i < 100; i++) { var result = _subject.GetValues(v => v % 128 != 0, 5); Assert.AreEqual(result.Count(), 5, "pulled not enough not mod 128"); } }
public void ShouldReturnNumbersOnlyUpToMaximumAvailable(int min, int max, int increment) { _subject = new RangeDomainSegment(_mockRandom.Object, min, max, increment) { SegmentValueOptions = RangeDomainSegmentOptions.Sequential }; int maxQuantityAvailable = _subject.MaxNumberOfValuesInSegment; var result = _subject.GetValues(maxQuantityAvailable).ToList(); Assert.AreEqual(_subject.MaxNumberOfValuesInSegment, result.Count); }
public void ShouldReturnValuesThatMatchAGivenCondition(int min, int max, int increment) { _subject = new RangeDomainSegment(new Random800_90(), min, max, increment) { SegmentValueOptions = RangeDomainSegmentOptions.Random }; var result = _subject.GetValues(v => v % 8 == 0, 10); Assert.LessOrEqual(result.Count(), 10); foreach (var value in result) { Assert.IsTrue(value % 8 == 0); } }
public void ShouldReturnValidNumbersWithinRangeRandomlySanityCheck(string testLabel, int min, int max, int increment, int seedRandom, int quantityToReturn, int[] expectation) { // Random should always return the "seedRandom" in order to test the +/- logic _mockRandom .Setup(s => s.GetRandomInt(It.IsAny <int>(), It.IsAny <int>())) .Returns(seedRandom); _subject = new RangeDomainSegment(_mockRandom.Object, min, max, increment) { SegmentValueOptions = RangeDomainSegmentOptions.Random }; var result = _subject.GetValues(min, max, quantityToReturn); Assert.AreEqual(expectation.ToList(), result.ToList()); }
public void ShouldReturnNumbersInSequenceSubsetRangeSanityCheck(int min, int max, int increment, int[] expectation) { _subject = new RangeDomainSegment(_mockRandom.Object, min, max, increment) { SegmentValueOptions = RangeDomainSegmentOptions.Sequential }; var maxQuantityAvailable = _subject.MaxNumberOfValuesInSegment; var result = _subject.GetValues(min, max, maxQuantityAvailable).ToList(); for (int i = 0; i < expectation.Length; i++) { Assert.AreEqual(expectation[i], result[i]); } }
public void ShouldReturnSequentialValuesOnlyWithinSubsets() { _subject = new RangeDomainSegment(_mockRandom.Object, 0, 10) { SegmentValueOptions = RangeDomainSegmentOptions.Sequential }; int minSubset = 0; int maxSubset = 4; int[] expectedValues = { 0, 1, 2, 3, 4 }; var maxQuantityAvailable = _subject.MaxNumberOfValuesInSegment; var result = _subject.GetValues(minSubset, maxSubset, maxQuantityAvailable).ToList(); Assert.IsTrue(expectedValues.OrderBy(t => t).SequenceEqual(result.OrderBy(t => t))); }
public void ShouldReturnRandomValuesOnlyWithinSubsets() { // Random should always return the "seedRandom" in order to test the +/- logic _mockRandom .Setup(s => s.GetRandomInt(It.IsAny <int>(), It.IsAny <int>())) .Returns(0); _subject = new RangeDomainSegment(_mockRandom.Object, 0, 10) { SegmentValueOptions = RangeDomainSegmentOptions.Random }; int minSubset = 0; int maxSubset = 4; int[] expectedValues = { 0, 1, 2, 3, 4 }; var maxQuantityAvailable = _subject.MaxNumberOfValuesInSegment; var result = _subject.GetValues(minSubset, maxSubset, maxQuantityAvailable); Assert.AreEqual(expectedValues.ToList(), result.ToList()); }