private static void TestFizzBuzzFooBarSequence(IReadOnlyList <string> actual, IFizzBuzzSettings settings)
        {
            Assert.IsNotNull(actual);
            long max = settings.Pairs.Aggregate <KeyValuePair <long, string>, long>(1, (current, kvp) => current * kvp.Key);

            Assert.AreEqual(actual.Count, max, $"For test should have a count of {max}");
            for (var index = 0; index < max; index++)
            {
                var comp     = index + settings.Start;
                var pairs    = settings.Pairs.Where(x => (comp % x.Key) == 0).Select(kvp => kvp.Value).ToArray();
                var expected = pairs.Any() ? $"{string.Join("", pairs)}" : $"{comp}";
                Assert.AreEqual(actual[(int)index], expected,
                                $"Expected: '{expected}', actual: '{actual[index]}'");
            }
        }
 public IEnumerable <string> ExecuteWhile(ContinueWhile condition, IFizzBuzzSettings fizzBuzzSettings = null)
 {
     Settings = fizzBuzzSettings;
     return(Shortcut() ?? Shortcut(condition) ?? ConditionalExecute(condition));
 }
Example #3
0
 public FizzBuzz(IFizzBuzzSettings settings = null)
 {
     Settings = settings;
 }
 public FizzBuzzWhile(IFizzBuzzSettings settings, ContinueWhile condition) : base(settings)
 {
     _condition = condition;
 }
 public FizzBuzzWhile(IFizzBuzzSettings settings = null) : base(settings)
 {
 }
Example #6
0
 public FibonacciFizzBuzz(IFizzBuzzSettings settings) : base(settings)
 {
 }
Example #7
0
 public override IFizzBuzzSettings SettingsChanged(IFizzBuzzSettings settings)
 {
     _last = settings.Start = 1L;
     return(base.SettingsChanged(settings));
 }
Example #8
0
 public FibonacciFizzBuzz(IFizzBuzzSettings settings, ContinueWhile condition) : base(settings, condition)
 {
 }