public void SetUp() { defaultWords = new List <string> { "di", "solid", "mocking", "unit", "to" }; defaultHeights = Enumerable.Repeat(30, defaultWords.Count).ToList(); wordsPreprocessor1 = A.Fake <IWordsPreprocessor>(); wordsPreprocessor2 = A.Fake <IWordsPreprocessor>(); wordsFilter1 = A.Fake <IWordsFilter>(); wordsFilter2 = A.Fake <IWordsFilter>(); wordsFramer = A.Fake <IWordsHeighter>(); layouter = A.Fake <ICloudLayouter>(); writer = A.Fake <IWordsBitmapWriter>(); A.CallTo(() => wordsPreprocessor1.Process(null)).WithAnyArguments().Returns(defaultWords); A.CallTo(() => wordsPreprocessor2.Process(null)).WithAnyArguments().Returns(defaultWords); A.CallTo(() => wordsFilter1.GetFiltered(null)).WithAnyArguments().Returns(defaultWords); A.CallTo(() => wordsFilter2.GetFiltered(null)).WithAnyArguments().Returns(defaultWords); A.CallTo(() => wordsFramer.GetWithHeights(null)).WithAnyArguments().Returns(defaultWords.Zip(defaultHeights, Tuple.Create)); A.CallTo(() => layouter.PutNextRectangle(Size.Empty)).WithAnyArguments().Returns(Rectangle.Empty); A.CallTo(() => writer.Write(null)).WithAnyArguments().Returns(bitmapResult); container = new CloudContainer( new [] { wordsPreprocessor1, wordsPreprocessor2 }, new [] { wordsFilter1, wordsFilter2 }, wordsFramer, layouter, writer, ImageFormat.Bmp); }
public TextProcessor( IWordsPreprocessor wordsPreprocessor, IDictionaryUpdater dictionaryUpdater, ITextProvider textProvider) { this.wordsPreprocessor = wordsPreprocessor; this.dictionaryUpdater = dictionaryUpdater; this.textProvider = textProvider; }
public DataProvider(ICloudSettings cloudSettings, ISourceTextReader textReader, IWordsPreprocessor wordsPreprocessor, IAlgorithm algorithm, ILogger logger) { this.cloudSettings = cloudSettings; this.textReader = textReader; this.wordsPreprocessor = wordsPreprocessor; this.algorithm = algorithm; this.logger = logger; }
public SimpleCloudConfigurator(IWordsPreprocessor preprocessor) { wordsWithFrequency = preprocessor.GetWordsFrequency(); }
private static Dictionary <string, int> ReadWords(IWordsDirectoryProvider wordsDirectoryProvider, IWordsPreprocessor preprocessor) { var words = File.ReadLines(wordsDirectoryProvider.WordsDirectory); return(preprocessor .PreprocessWords(words) .GroupBy(word => word) .ToDictionary(wordGroup => wordGroup.Key, wordGroup => wordGroup.Count())); }
public WordsProvider(IWordsDirectoryProvider wordsDirectoryProvider, IWordsPreprocessor preprocessor) { wordToFrequency = ReadWords(wordsDirectoryProvider, preprocessor); }
public BayesianSpamFilter(IProbabilityProvider probabilityProvider, IWordsExtractor wordsExtractor, IWordsPreprocessor wordsPreprocessor) { this.probabilityProvider = probabilityProvider; this.wordsExtractor = wordsExtractor; this.wordsPreprocessor = wordsPreprocessor; }
private static Dictionary <string, int> CalculateWordsCount(IEnumerable <FileInfo> msgFiles, IWordsExtractor wordsExtractor, IWordsPreprocessor wordsPreprocessor) { var wordToCountMessagesWithThisWord = new Dictionary <string, int>(); foreach (var messageFile in msgFiles) { var rawWords = wordsExtractor.ExtractWords(messageFile.OpenRead()); var preprocessedWords = wordsPreprocessor.PreprocessWords(rawWords); foreach (var word in preprocessedWords.Distinct()) { if (!wordToCountMessagesWithThisWord.ContainsKey(word)) { wordToCountMessagesWithThisWord[word] = 0; } wordToCountMessagesWithThisWord[word]++; } } return(wordToCountMessagesWithThisWord); }
public ProbabilityProvider(ITrainingSample trainingSample, IWordsExtractor wordsExtractor, IWordsPreprocessor wordsPreprocessor) { spamCountWithWord = CalculateWordsCount(trainingSample.SpamFiles, wordsExtractor, wordsPreprocessor); totalSpamCount = trainingSample.SpamFiles.Count(); hamCountWithWord = CalculateWordsCount(trainingSample.HamFiles, wordsExtractor, wordsPreprocessor); totalHamCount = trainingSample.HamFiles.Count(); }