Esempio n. 1
0
		/// <summary>
		/// Print out the word occurences.
		/// </summary>
		/// <param name="freq"></param>
		private static void Print(OccurenceInfo freq)
		{
			Console.Write(freq.Occurence+" occurence(s): ");
			string printStr = String.Empty; //used to avoid redundant last comma
			foreach (string word in freq)
			{
				if (!String.IsNullOrEmpty(printStr))
				{
					Console.Write(printStr + ", ");
				}
				printStr = word;
			}
			Console.WriteLine(printStr);
		}
Esempio n. 2
0
		/// <summary>
		/// Use the word frequency as an index into an array where each entry in the 
		/// array contains the word(s) with that frequency.
		/// </summary>
		/// <returns></returns>
		private OccurenceInfo[] BuildFrequencyArray()
		{
			OccurenceInfo[] result = new OccurenceInfo[maxWordCount + 1];
			foreach (string word in wordCount.Keys)
			{
				int frequency = wordCount[word];
				if (result[frequency] == null)
				{
					result[frequency] = new OccurenceInfo(frequency);
				}
				result[frequency].Add(word);
			}
			return result;
		}
Esempio n. 3
0
		/// <summary>
		/// Compare a single frequencyInfo object to the original test data.
		/// </summary>
		/// <param name="frequencyInfo"></param>
		/// <param name="testData"></param>
		private void TestResult(OccurenceInfo frequencyInfo, TestData testData)
		{
			Assert.AreEqual(frequencyInfo.Words.Count, testData.words.Length);

			for (int i = 0; i < testData.words.Length; i++)
			{
				Assert.IsTrue(frequencyInfo.Words.Contains(testData.words[i]));
			}
		}
Esempio n. 4
0
		/// <summary>
		/// Traverse frequency array from the back to get n most frequency words.
		/// </summary>
		/// <param name="frequencyArray"></param>
		/// <param name="n"></param>
		/// <returns></returns>
		private WordOccurences GetTopNWords(OccurenceInfo[] frequencyArray, int n)
		{
			WordOccurences result = new WordOccurences();

			//have to filter out null array entries
			int len = frequencyArray.Length;
			int index = 0;
			int count = 0;
			while (count < n)
			{
				OccurenceInfo fi = frequencyArray[len - index - 1]; //start at the back of the array
				if (fi != null)
				{
					result.Add(fi);
					count++;
				}
				index++;
			}

			return result;
		}