public void All_3_Fizz_5_Buzz_15_FizzBuzz_Test() { var m15 = GetMultiplesByDivisor(15, numbers); var m3 = GetMultiplesByDivisor(3, numbers).Where(n => !m15.Contains(n)).ToArray(); var m5 = GetMultiplesByDivisor(5, numbers).Where(n => !m15.Contains(n)).ToArray(); var other = numbers.Where(n => !m3.Contains(n) && !m5.Contains(n) && !m15.Contains(n)).ToArray(); var fb15 = new FBDivisorItem(15, "FizzBuzz"); var fb5 = new FBDivisorItem(5, "Buzz"); var fb3 = new FBDivisorItem(3, "Fizz"); var fbproc = new FBProcessor(numbers, new List <IFBItem> { fb15, fb5, fb3 }); var procresults = fbproc.GetResults(); var m3count = procresults.Where(n => n.Text == "Fizz").Count(); var m5count = procresults.Where(n => n.Text == "Buzz").Count(); var m15count = procresults.Where(n => n.Text == "FizzBuzz").Count(); var othercount = procresults.Where(n => n.Text == null).Count(); Assert.IsTrue(m3.Count() == m3count && m5.Count() == m5count && m15.Count() == m15count && othercount == other.Count()); }
public void Multiples_Of_3_Return_Fizz_Test() { var numstocheck = GetMultiplesByDivisor(3, numbers); var fbitem3 = new FBDivisorItem(3, "Fizz"); bool condcheck = CheckForCondition(numstocheck, new List <IFBItem> { fbitem3 }, "Fizz"); Assert.IsTrue(condcheck == false); }
public void NonMultiples_Of_15_Return_Number_Test() { var numstocheck = GetNonMultiplesByDivisor(15, numbers); var fbitem15 = new FBDivisorItem(15, "FizzBuzz"); bool condcheck = CheckForCondition(numstocheck, new List <IFBItem> { fbitem15 }, null); Assert.IsTrue(condcheck == false); }
public void NonMultiples_Of_5_Return_Number_Test() { var notby5 = GetNonMultiplesByDivisor(5, numbers); var fbitem5 = new FBDivisorItem(5, "Buzz"); bool condcheck = CheckForCondition(notby5, new List <IFBItem> { fbitem5 }, null); Assert.IsTrue(condcheck == false); }
private static FBResult[] ProcessResultsFizzBuzz() { FBDivisorItem fb15 = new FBDivisorItem(15, "FizzBuzz"); List <IFBItem> fbitems = new List <IFBItem>(); fbitems.Add(fb15); FBProcessor fbproc = new FBProcessor(numbers, fbitems); return(fbproc.GetResults()); }
public void Multiples_Of_15_Return_FizzBuzz_With_15_5_3_Items_Test() { var numstocheck = GetMultiplesByDivisor(15, numbers); var fbitem15 = new FBDivisorItem(15, "FizzBuzz"); var fbitem5 = new FBDivisorItem(5, "Buzz"); var fbitem3 = new FBDivisorItem(3, "Fizz"); bool condcheck = CheckForCondition(numstocheck, new List <IFBItem> { fbitem15, fbitem5, fbitem3 }, "FizzBuzz"); Assert.IsTrue(condcheck == false); }
private static FBResult[] ProcessResultsFizzAndPalindrome() { FBDivisorItem fb3 = new FBDivisorItem(3, "Fizz"); FBPalindromeItem fbp = new FBPalindromeItem(10); List <IFBItem> fbitems = new List <IFBItem>(); fbitems.Add(fb3); fbitems.Add(fbp); FBProcessor fbproc = new FBProcessor(numbers, fbitems); return(fbproc.GetResults()); }
public void All_Palindrome_PerfectSqaure_FizzBuzz_Test() { var sq = new int[] { 1, 4, 9, 16 }; //Single digits are counted as pailndromes, but the perfect squares are left out. //So 1,4 & 9 are not included. var p = new int[] { 2, 3, 5, 6, 7, 8, 11 }; var m15 = GetMultiplesByDivisor(15, numbers20).Where(n => !p.Contains(n) && !sq.Contains(n)).ToArray(); var m3 = GetMultiplesByDivisor(3, numbers20).Where(n => !m15.Contains(n) && !p.Contains(n) && !sq.Contains(n)).ToArray(); var m5 = GetMultiplesByDivisor(5, numbers20).Where(n => !m15.Contains(n) && !p.Contains(n) && !sq.Contains(n)).ToArray(); var other = numbers20.Where(n => !m3.Contains(n) && !m5.Contains(n) && !m15.Contains(n) && !p.Contains(n) && !sq.Contains(n)).ToArray(); var fb15 = new FBDivisorItem(15, "FizzBuzz"); var fb5 = new FBDivisorItem(5, "Buzz"); var fb3 = new FBDivisorItem(3, "Fizz"); var fbp = new FBPalindromeItem(20); var fbsq = new FBPerfectSquareItem(25); var fbproc = new FBProcessor(numbers20, new List <IFBItem> { fb15, fb5, fb3, fbp, fbsq }); var procresults = fbproc.GetResults(); var m3count = procresults.Where(n => n.Text == "Fizz").Count(); var m5count = procresults.Where(n => n.Text == "Buzz").Count(); var m15count = procresults.Where(n => n.Text == "FizzBuzz").Count(); var pcount = procresults.Where(n => n.Text == "Palindrome!").Count(); var sqcount = procresults.Where(n => n.Text == "Perfect Square!").Count(); var othercount = procresults.Where(n => n.Text == null).Count(); Assert.IsTrue( m3count == m3.Count() && m5count == m5.Count() && m15count == m15.Count() && othercount == other.Count() && pcount == p.Count() && sqcount == sq.Count() ); }
static void Main(string[] args) { numbers = Enumerable.Range(1, 100).ToArray(); //var results = ProcessResultsFizz(); //Only multiples of 3 rule. //var results = ProcessResultsBuzz(); //Only Multiples of 5 rule. //var results = ProcessResultsFizzBuzz(); //Only Multiples of 15 rule. //var results = ProcessResultsFullFizzBuzz(); //All three fizzbuzz rules. //var results = ProcessResultsFizzAndPalindrome(); //Only multiples of 3 and palindromes. //var results = ProcessResultsOutsideAssemblyPalindrome(); //Palindrome rule applied based upon outside implementation of IFBItem. /* * foreach (var r in results) * { * Console.WriteLine(r.ToString()); * } */ FBDivisorItem fbitem3 = new FBDivisorItem(3, "Fizz"); FBDivisorItem fbitem5 = new FBDivisorItem(5, "Buzz"); FBDivisorItem fbitem15 = new FBDivisorItem(15, "FizzBuzz"); List <IFBItem> fbitems = new List <IFBItem>() { fbitem3, fbitem5, fbitem15 }; for (int i = 0; i <= int.MaxValue; i++) { var result = FBProcessor.GetResult(i, fbitems); if (i % 1000000 == 0 || i < 1000) { Console.WriteLine(result); } } Console.ReadKey(); }