public void SimpleLotteryTicket_Length_EqualsToValueRequested(int totalNumberToGenerate)
        {
            var lotterySettings = new LotterySettings {
                MinimumValue = 1, MaximumValue = 49, TotalNumbersToGenerate = totalNumberToGenerate
            };
            var simpleLotteryTicket = new SimpleLotteryTicket(_numberGenerator.Object, _colourPicker.Object);
            var randomNumbers       = simpleLotteryTicket.Generate(lotterySettings);

            Assert.AreEqual(totalNumberToGenerate, randomNumbers.Count());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Method to return a collection of unique and random numbers between 1 - 49
        /// </summary>
        /// <param name="settings"></param>
        /// <returns></returns>
        public IEnumerable <LotteryNumber> Generate(LotterySettings settings)
        {
            // Setup local variables
            var randomNumberList = new List <LotteryNumber>();

            // Loop until we have a collection of unique random numbers added to a list
            for (int count = 0; count < settings.TotalNumbersToGenerate; count++)
            {
                var randomUniqueNumber = _numberGenerator.Draw(settings.MinimumValue, settings.MaximumValue, randomNumberList.Select(x => x.Number).ToList());

                randomNumberList.Add(new LotteryNumber
                {
                    Number = randomUniqueNumber,
                    Colour = _colourPicker.Select(randomUniqueNumber)
                });
            }

            // Sort the numbers in numerical order and return the result
            return(randomNumberList.OrderBy(x => x.Number));
        }