Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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());
        }
Пример #4
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #16
0
 public void InitializeTest()
 {
     builder = new FizzBuzzBuilder(new FizzBuzzRules());
 }
 public void EnumerateFizzBuzz_CountIsLessThanZero_ThrowsImmediately()
 {
     Assert.Throws <ArgumentOutOfRangeException>("count", () => FizzBuzzBuilder.EnumerateFizzBuzz(0, -1));
 }