public void FizzBuzz_ZeroToFifteen_BasicDivisibleCheck_ShouldPrintZeroProperly() { var game = FizzBuzzBuilder.Create(0, 15).WithDivisibleCheckFor(3, "Fizz").WithDivisibleCheckFor(5, "Buzz").Build(); var sb = new StringBuilder(); sb.AppendLine("0"); sb.AppendLine("1"); sb.AppendLine("2"); sb.AppendLine("Fizz (3)"); sb.AppendLine("4"); sb.AppendLine("Buzz (5)"); sb.AppendLine("Fizz (6)"); sb.AppendLine("7"); sb.AppendLine("8"); sb.AppendLine("Fizz (9)"); sb.AppendLine("Buzz (10)"); sb.AppendLine("11"); sb.AppendLine("Fizz (12)"); sb.AppendLine("13"); sb.AppendLine("14"); sb.AppendLine("FizzBuzz (15)"); var expected = sb.ToString(); game.SolveFizzBuzz(); Assert.AreEqual(expected, game.LastResult); }
public void GeneratesFizzBuzzWizzBang() { var comparators = new List <IFizzBuzzNumberComparator> { new ModulusFizzBuzzComparator("Fizz", 3), new ModulusFizzBuzzComparator("Buzz", 5), new ModulusFizzBuzzComparator("Wizz", 7), new ModulusFizzBuzzComparator("Bang", 11) }; var builder = new FizzBuzzBuilder(comparators); IEnumerable <int> range = Enumerable.Range(1, 100); var results = builder.GetFizzBuzz(range); foreach (var result in results) { if (result.Key % 3 == 0) { Assert.Contains("Fizz", result.Value); } if (result.Key % 5 == 0) { Assert.Contains("Buzz", result.Value); } if (result.Key % 7 == 0) { Assert.Contains("Wizz", result.Value); } if (result.Key % 11 == 0) { Assert.Contains("Bang", result.Value); } } }
public void SingleComparatorReturnsCorrectText(string text, int numberToCompare, int number, string expected) { var comparators = new List <IFizzBuzzNumberComparator> { new ModulusFizzBuzzComparator(text, numberToCompare) }; var bizzBuzz = new FizzBuzzBuilder(comparators); var result = bizzBuzz.GetFizzBuzz(number); Assert.Equal(expected, result.ToString()); }
public void Convert_ReturnsBang_OnPassingInAMultipleOfSevenWhileUsingACustomRule([Values(7, 14, 21, 28, 35)] int input) { var customBuzzer = new FizzBuzzBuilder() .WithRule((i) => i % 7 == 0, "Bang") .Build(); var result = customBuzzer.Convert(input); Assert.AreEqual("Bang", result); }
private FizzBuzzBuilder GetBuilder() { var comparators = new List <IFizzBuzzNumberComparator> { new ModulusFizzBuzzComparator("Fizz", 3), new ModulusFizzBuzzComparator("Buzz", 5), new ModulusFizzBuzzComparator("Wizz", 7), new ModulusFizzBuzzComparator("Bang", 11) }; var builder = new FizzBuzzBuilder(comparators); return(builder); }
static void Main(string[] args) { var comparators = new List <IFizzBuzzNumberComparator> { new ModulusFizzBuzzComparator("Fizz", 3), new ModulusFizzBuzzComparator("Buzz", 5), new ModulusFizzBuzzComparator("Wizz", 7), new ModulusFizzBuzzComparator("Bang", 11) }; var builder = new FizzBuzzBuilder(comparators); IEnumerable <int> range = Enumerable.Range(1, 100); var writer = new FizzBuzzWriterString(Console.Out); var fizzBuzz = new FizzBuzz(builder, writer); fizzBuzz.WriteFizzBuzz(range); }
public static IServiceCollection AddFizzBuzz <TFizzBuzz>(this IServiceCollection services, Action <FizzBuzzBuilder> setup = null) where TFizzBuzz : class, IFizzBuzzCommand { services.TryAddTransient <IFizzBuzzCommand, TFizzBuzz>(); var builder = new FizzBuzzBuilder(services); setup?.Invoke(builder); builder.AddInputProcessor <DefaultFizzBuzzInputProcessor>(); builder.AddInputProvider <DefaultFizzBuzzInputProvider>(); builder.AddNumberProcessor <DefaultFizzBuzzNumberAnalyzer>(); builder.AddOutputProcessor <DefaultFizzBuzzOutputProcessor>(); return(services); }
static void Main(string[] args) { game = FizzBuzzBuilder.Create(-500, 500) .WithDivisibleCheckFor(3, "Fizz") .WithDivisibleCheckFor(5, "Buzz") .WithDivisibleCheckFor(7, "Jazz") .WithDivisibleCheckFor(11, "Guzz") .WithDivisibleCheckFor(13, "Razz") .WithFunctionCheckFor((n) => { if (n > -10 && n < 10) { return(false); } var str = n.ToString(); int b = 0, e = 0; for (int i = 0; i < str.Length; i++) { b = i; e = str.Length - 1 - i; if (b > e) { return(true); } if (str[b] != str[e]) { return(false); } } return(false); }, "Quizz") .Build(); var sw = Stopwatch.StartNew(); game.SolveFizzBuzz(); sw.Stop(); Console.WriteLine(game.LastResult); Console.WriteLine($"Elapsed: {sw.ElapsedMilliseconds}ms"); Console.ReadLine(); }
public void EnumerateFizzBuzz_StartPlusCountMinusOneIsLargerThanMaxValue_ThrowsImmediately() { Assert.Throws <ArgumentOutOfRangeException>("count", () => FizzBuzzBuilder.EnumerateFizzBuzz(int.MaxValue, 2)); Assert.Throws <ArgumentOutOfRangeException>("count", () => FizzBuzzBuilder.EnumerateFizzBuzz(2, int.MaxValue)); }
public void GetFizzBuzz_CountIsLessThanZero_Throws() { Assert.Throws <ArgumentOutOfRangeException>("count", () => FizzBuzzBuilder.GetFizzBuzz(0, -1)); }
public void EnumerateFizzBuzz(int start, int count, IEnumerable <string> expected) { IEnumerable <string> actual = FizzBuzzBuilder.EnumerateFizzBuzz(start, count); Assert.Equal(expected, actual); }
public void Setup() { builder = new FizzBuzzBuilder(new KataRules()); }
public void GetFizzBuzz_Separator(int start, int count, string separator, string expected) { string actual = FizzBuzzBuilder.GetFizzBuzz(start, count, separator); Assert.Equal(expected, actual); }
public void GetFizzBuzz_NoRange_Empty(int start, int count) { string empty = FizzBuzzBuilder.GetFizzBuzz(start, count); Assert.Empty(empty); }
public void GetFizzBuzz_DivisibleByThreeIsFizz_DivisibleByFiveIsBuzz_BothIsFizzBuzz_NeitherIsNumber(int start, int count, string expected) { string actual = FizzBuzzBuilder.GetFizzBuzz(start, count); Assert.Equal(expected, actual); }
public void InitializeTest() { builder = new FizzBuzzBuilder(new FizzBuzzRules()); }
public void EnumerateFizzBuzz_CountIsLessThanZero_ThrowsImmediately() { Assert.Throws <ArgumentOutOfRangeException>("count", () => FizzBuzzBuilder.EnumerateFizzBuzz(0, -1)); }