private IEnumerable<string> FizzBuzzResult(FizzBuzzAlgorithm algorithm)
        {
            var standardMatcher = new FizzBuzzStandardMatcher();
            var variationMatcher = new FizzBuzzVariationMatcher();

            for (int i = 1; i <= FizzBuzzResultCount; i++)
            {
                string result;
                
                if (algorithm == FizzBuzzAlgorithm.WithVariation && variationMatcher.Matches(i, out result))
                {
                    yield return result;
                    continue;
                }
                if (standardMatcher.Matches(i, out result))
                {
                    yield return result;
                    continue;
                }
                yield return i.ToString();
            }
        }
        public void FizzBuzzTest()
        {
            var customAlgorithm = new FizzBuzzAlgorithm();

            customAlgorithm.Run(100);
        }
 /// <summary>
 ///     Returns Result as specified in the parameter algorithm.
 /// </summary>
 /// <param name="algorithm">Algoritm to use.</param>
 /// <returns>
 ///     <see cref="IEnumerable{String}"></see>
 /// </returns>
 public IEnumerable<string> GetOutput(FizzBuzzAlgorithm algorithm)
 {
     return FizzBuzzResult(algorithm);
 }