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()); }
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()); }
private static FBResult[] ProcessResultsOutsideAssemblyPalindrome() { PalindromeOutside op = new PalindromeOutside(10); List <IFBItem> fbitems = new List <IFBItem>(); fbitems.Add(op); FBProcessor fbproc = new FBProcessor(numbers, fbitems); return(fbproc.GetResults()); }
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() ); }
private static bool CheckForCondition(int[] numstocheck, List <IFBItem> fbitems, string textcheck) { var fbproc = new FBProcessor(numstocheck, fbitems); var results = fbproc.GetResults(); bool conditioncheck = false; foreach (int i in numstocheck) { foreach (IFBItem fbi in fbitems.OrderByDescending(fb => fb.OrderCheck)) { FBResult fbresult = fbi.GetResult(i); if (fbresult.Text == textcheck) { break; } if (fbresult.Text != textcheck && fbresult.FBValue.HasValue == true) { conditioncheck = true; break; } } } return(conditioncheck); }
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(); }