public IEnumerable <string> Analyze() { string error = string.Empty; Dictionary <string, int> result = new Dictionary <string, int>(); try { result = wordCounter.CountWords(bookLoader.Load(bookPath)); } catch (FileNotFoundException) { error = "could not find file: " + bookPath; } catch (DirectoryNotFoundException) { error = "could not find directory containing file: " + bookPath; } catch (Exception e) { error = e.Message; } if (error.Length > 0) { yield return(error); } else { foreach (var kvp in result.OrderBy(a => a.Value)) { yield return(string.Format("Word: {0}, Count: {1}, Prime? {2}", kvp.Key, kvp.Value, primeTester.IsPrime(kvp.Value) ? "Yes" : "No")); } } }
public void CalculateAndUpdateWordCount(string text) { var words = textSplitter.SanitizeAndSplitIntoWords(text); var wordCount = wordCounter.CountWords(words); foreach (var kvp in wordCount) { var existingWord = countedWords.SingleOrDefault(cw => cw.Word.Equals(kvp.Key)); if (existingWord == null) { existingWord = new CountedWord { Word = kvp.Key, Count = kvp.Value }; countedWords.Add(existingWord); } else { existingWord.Count += kvp.Value; } bool isPrime; if (!primeCheckResults.TryGetValue(existingWord.Count, out isPrime)) { isPrime = primeChecker.IsPrime(existingWord.Count); primeCheckResults[existingWord.Count] = isPrime; } existingWord.IsPrime = isPrime; } }
public IList <KeyValuePair <string, int> > CountTopWords(string source, int top) { var text = textReader.SourceText(source); var words = textWordCounter.CountWords(text); var topWords = words.OrderByDescending(x => x.Value).Take(top); return(topWords.ToList()); }
public Result Layout(string inputPath, string outputPath) { return(parser.ParseFile(inputPath) .Then(parsed => wordCounter.CountWords(parsed)) .Then(countDict => translator.TranslateWordsToSizedWords(countDict)) .Then(translated => layouter.LayoutWords(translated)) .Then(rectangles => visualizer.Visualize(rectangles, outputPath)) .RefineError("Cannot layout:")); }
public Result <List <Word> > GetWords(List <string> text, int topNWords, int minWordLength, int minFontSize, int maxFontSize, string fontFamily) { return(textAnalyzer.GetWords(text, minWordLength) .Then(words => wordConverters.Aggregate(words, (current, converter) => converter.ConvertWords(current).GetValueOrThrow())) .Then(words => wordFilters.Aggregate(words, (current, filter) => filter.FilterWords(current).GetValueOrThrow())) .Then(words => wordCounter.CountWords(words, topNWords)) .Then(words => fontAnalyzer.SetFontForWords(words, minFontSize, maxFontSize, fontFamily))); }
public int CalculateReadTime(string text) { var wordCount = _wordCounter.CountWords(text); var value = wordCount / 200d; var minutes = (int)value; var seconds = ((value % 2) * 0.6d) * 100; if (seconds >= 30) { minutes++; } return(minutes); }
private void btnCount_Click(object sender, EventArgs e) { Application.DoEvents(); IWordCounter wordCounter = null; if (cmbWordCounters.SelectedIndex != -1) { wordCounter = _wordCounters.SingleOrDefault(x => x.GetType().Name == cmbWordCounters.SelectedItem.ToString()); } if (wordCounter != null) { var results = wordCounter.CountWords(txtInput.Text) .OrderByDescending(x => x.Count) .ToList(); resultsView.Items.Clear(); foreach (var result in results) { var item = new ListViewItem(result.Word); item.SubItems.Add(result.Count.ToString(CultureInfo.InvariantCulture)); resultsView.Items.Add(item); } lblCount.Text = results.Count().ToString(); } else { MessageBox.Show("Please choose a word counter"); } }
public void WordCounterTests_ReturnsCorrectWordCount() { // Arrange const string text = "The quick brown fox jumps over the lazy dog"; var expectedResult = new Dictionary <string, int> { { "the", 2 }, { "quick", 1 }, { "brown", 1 }, { "fox", 1 }, { "jumps", 1 }, { "over", 1 }, { "lazy", 1 }, { "dog", 1 } }; // Act var actualResult = _wordCounter.CountWords(text); // Assert CollectionAssert.AreEqual(expectedResult, actualResult); }
public void EmptyString() { Assert.IsFalse(wordCounter.CountWords(string.Empty).Any()); }
public void Execute() { _reader.Read(ProcessInputChunk); _wordCounter.CountWords(_bufferManager.Previous); }