public void Analyze_ReturnCorrectWordsFrequencies() { var words = new List <string>() { "он", "не", "рассказал", "всей", "эх", "правда", "не", "правда", "эх", "эх" }; var expected = new Dictionary <string, int>() { ["рассказал"] = 1, ["он"] = 1, ["эх"] = 3, ["не"] = 2, ["правда"] = 2, ["всей"] = 1 }; analyzer.Analyze(words).Should().BeEquivalentTo(expected); }
public Result <TagsCloud> CreateTagsCloud(string textFilePath, IFontSettings fontSettings) { return(sourceWordsProvider.Get() .Then ( words => wordsAnalyzer .Analyze(words) .OrderByDescending(kvp => kvp.Value) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) ) .Then(frequencyByWord => GetTags(frequencyByWord, fontSettings)) .Then(tags => new TagsCloud(tags, layouter.CloudWidth, layouter.CloudHeight, layouter.Center)) .RefineError("Cannot create tags cloud")); }