public void TestLimits() { Assert.IsEmpty(FizzBuzz.Generate(0)); Assert.IsEmpty(FizzBuzz.Generate(-1)); Assert.IsEmpty(FizzBuzz.Generate(int.MinValue)); Assert.IsNotEmpty(FizzBuzz.Generate(1)); }
public void TestItems() { var sequence = FizzBuzz.Generate(1500); var fizz = sequence.Where((item, index) => (index + 1) % 3 == 0 && (index + 1) % 5 != 0).Select(i => i); var buzz = sequence.Where((item, index) => (index + 1) % 3 != 0 && (index + 1) % 5 == 0).Select(i => i); var fizzBuzz = sequence.Where((item, index) => (index + 1) % 15 == 0).Select(i => i); var numbers = sequence.Where((item, index) => (index + 1) % 3 != 0 && (index + 1) % 5 != 0).Select(i => i); Assert.AreEqual(fizz.Count(), fizz.Count(item => item == "Fizz")); Assert.AreEqual(buzz.Count(), buzz.Count(item => item == "Buzz")); Assert.AreEqual(fizzBuzz.Count(), fizzBuzz.Count(item => item == "FizzBuzz")); Assert.AreEqual(800, numbers.Count(item => int.TryParse(item, out int result))); }
public void TestQuantities() { var sequence = FizzBuzz.Generate(1500); Assert.AreEqual(500, sequence.Count(item => item.Contains("Fizz"))); Assert.AreEqual(300, sequence.Count(item => item.Contains("Buzz"))); Assert.AreEqual(100, sequence.Count(item => item == "FizzBuzz")); Assert.AreEqual(800, sequence.Count(item => !item.Contains("Fizz") && !item.Contains("Buzz"))); var div3 = sequence.Where((item, index) => (index + 1) % 3 == 0).Select(i => i); var div5 = sequence.Where((item, index) => (index + 1) % 5 == 0).Select(i => i); var div15 = sequence.Where((item, index) => (index + 1) % 15 == 0).Select(i => i); Assert.AreEqual(div3.Count(), div3.Count(item => item.Contains("Fizz"))); Assert.AreEqual(div3.Count() - 100, div3.Count(item => item == "Fizz")); Assert.AreEqual(div5.Count(), div5.Count(item => item.Contains("Buzz"))); Assert.AreEqual(div5.Count() - 100, div5.Count(item => item == "Buzz")); Assert.AreEqual(div15.Count(), div15.Count(item => item == "FizzBuzz")); }
public void Should_return_empty_string_for_range_with_a_lower_bound_of_less_than_1() { var fizzBuzz = new FizzBuzz(); fizzBuzz.Generate(0, 0).ShouldBe(string.Empty); }
public void Should_return_string_for_range(int lowerBound, int upperBound, string expected) { var fizzBuzz = new FizzBuzz(); fizzBuzz.Generate(lowerBound, upperBound).ShouldBe(expected); }
public string TestSelectedItems(int index, int count) { var sequence = FizzBuzz.Generate(count); return(sequence.Skip(index - 1).First()); }