コード例 #1
0
        public IEnumerable <IEnumerable <int> > Generate(int numberOfLevels, int maxNumber, bool subsequentOddEven)
        {
            var result = new List <List <int> >();

            var oddEven = subsequentOddEven
                ? (_randomiser.RandomNextBool() ? Randomiser.OddEven.Even : Randomiser.OddEven.Odd)
                : Randomiser.OddEven.Any;

            for (int i = 0; i < numberOfLevels; i++)
            {
                var row = new List <int>();

                for (int j = 0; j <= i; j++)
                {
                    var value = _randomiser.RandomNextInt(maxNumber, oddEven);

                    row.Add(value);
                }

                result.Add(row);
                oddEven = _randomiser.SwitchOddEven(oddEven);
            }

            return(result);
        }
コード例 #2
0
        public void RandomNextIntReturnsExpectedValues(bool?oddEvenBoth, int maxNumber)
        {
            var count      = 100;
            var oddEven    = oddEvenBoth == null ? OddEven.Any : (oddEvenBoth.Value ? OddEven.Odd: OddEven.Even);
            var resultList = new List <int>();

            while (count > 0)
            {
                var result = _sut.RandomNextInt(maxNumber, oddEven);

                count--;
            }

            Assert.All(resultList, (x) => Assert.True(x <= maxNumber));

            if (oddEven == OddEven.Even)
            {
                Assert.All(resultList, (x) => Assert.True(x % 2 == 0));
            }
            else if (oddEven == OddEven.Odd)
            {
                Assert.All(resultList, (x) => Assert.True(x % 2 == 1));
            }
        }