private static string GetStatistics(string AnalizeText) { StringBuilder staticticsCollected = new StringBuilder(); Console.Write("Collecting Statistics... "); CheckEachChar(AnalizeText, out AlphaCounterTracker LetterCount, out WordCounterTracker WordCount, out int CapitalizationCount, out PrefixCounterTracker AnyPrefixCount); Console.WriteLine("Complete."); Console.Write("Formatting Data... "); staticticsCollected.Append(LetterCount.GetItemizedCountResults("Letter Count (case insensitive):")); staticticsCollected.Append(System.Environment.NewLine); staticticsCollected.Append($"Count of Capatalized Letters: {CapitalizationCount}"); staticticsCollected.Append(System.Environment.NewLine); staticticsCollected.Append(System.Environment.NewLine); staticticsCollected.Append(WordCount.GetGeneralCountResults("Most Occurring Word(s): ")); staticticsCollected.Append(System.Environment.NewLine); staticticsCollected.Append(System.Environment.NewLine); staticticsCollected.Append(AnyPrefixCount.GetGeneralCountResults("Most Occurring prefix(s) of two or more characters: ")); Console.WriteLine("Complete."); Console.WriteLine(); return(staticticsCollected.ToString()); }
public void FocusOnCountingLetters() { string StringToTest = "ASDFASDASAqwerqweqwqZXCVzxcvZXCzxcZXzxZz IIIIIIIIII IIIIIIIIII IIIIIIIIII IIIIIIIIII IIIIIIIIII"; Dictionary <char, int> ExpectedLetterCount = new Dictionary <char, int> { ['A'] = 4, ['S'] = 3, ['D'] = 2, ['F'] = 1, ['Q'] = 4, ['W'] = 3, ['E'] = 2, ['R'] = 1, ['Z'] = 8, ['X'] = 6, ['C'] = 4, ['V'] = 2, ['I'] = 50 }; int expectedCapitalizationCount = 50 + 8 + 6 + 4 + 2; string ExpectedHighestWord = "I"; int ExpectedHighestWordCount = 46; List <string> expectedPrefixes_all = new List <string> { "Aqwerqweqw", "Vzxc", "Czx", "Xz", "Zz" }; List <string> NotExpectedPrefixes_all = new List <string> { "Aq", "Aqw", "Aqwe", "Aqwer", "Aqwerq", "Aqwerqw", "Aqwerqwe", "Aqwerqweq", "Vz", "Vzx", "Cz" }; int ExpectedPrefixCount = 1; GatherTextStatistics.Program.CheckEachChar(StringToTest, out AlphaCounterTracker LetterCount, out WordCounterTracker WordCount, out int CapitalizationCount, out PrefixCounterTracker AnyPrefixCount); foreach (char c in ExpectedLetterCount.Keys) { Assert.AreEqual(ExpectedLetterCount[c], LetterCount.GetValue(c)); } Assert.AreEqual(ExpectedHighestWordCount, WordCount.HighestOccuranceCount); string HighestWordResults = WordCount.GetGeneralCountResults(); Assert.IsTrue(HighestWordResults.Contains($"{ExpectedHighestWord}")); Assert.AreEqual(expectedCapitalizationCount, CapitalizationCount); Assert.AreEqual(ExpectedPrefixCount, AnyPrefixCount.HighestOccuranceCount); foreach (string s in expectedPrefixes_all) { Assert.IsTrue(AnyPrefixCount.HighestIncludes(s)); } foreach (string s in NotExpectedPrefixes_all) { Assert.IsFalse(AnyPrefixCount.HighestIncludes(s)); } }