public void FindWordsWhenMatchTheUnexistingLetters() { var wordList = new List <string>() { "AAAA", "AAAB", "ABAA" }; var wf = new WordsFinder(wordList); var letterA = new Letter(); letterA.Solve('A'); var letterMinusB = new Letter(); letterMinusB.DiscardPossibility('B'); var word = new Word(new List <Letter>() { letterA, letterA, letterA, letterMinusB }); var wordsSolutions = wf.GetWords(word); Assert.AreEqual(1, wordsSolutions.Count); }
public void FindWordsWhenMatchTheExistingLetters() { var wordList = new List <string>() { "AAAA", "AAAB", "ABAA" }; var wf = new WordsFinder(wordList); var letterA = new Letter(); letterA.Solve('A'); var letter = new Letter(); var word = new Word(new List <Letter>() { letterA, letterA, letterA, letter }); var wordsSolutions = wf.GetWords(word); Assert.AreEqual(2, wordsSolutions.Count); }
public void ReturnEmptyStringListWhenNoWordIsFound() { var wf = new WordsFinder(); var words = wf.GetWords(""); Assert.AreEqual(0, words.Count); }
public void ReturnOneWordWhenItMatchesTheFilter() { var wordList = new List <string>() { "word", "hello" }; var wf = new WordsFinder(wordList); var wordsSolutions = wf.GetWords("hello"); Assert.AreEqual(1, wordsSolutions.Count); }
public void ReturnOneWordWhenThereIsOneWordInDictionaryAndEmptyFilter() { var wordList = new List <string>() { "word" }; var wf = new WordsFinder(wordList); var words = wf.GetWords(""); Assert.AreEqual(1, words.Count); }
public void FindTwoWordsOfFourCharacters() { var wordList = new List <string>() { "WORD", "HELLO", "ABCD" }; var wf = new WordsFinder(wordList); var letter = new Letter(); var word = new Word(new List <Letter>() { letter, letter, letter, letter }); var wordsSolutions = wf.GetWords(word); Assert.AreEqual(2, wordsSolutions.Count); }
public WordsFinderViewModel() { _wordsReader = new WordsReader(); var wordList = _wordsReader.GetWordList(); _wordsFinder = new WordsFinder(wordList); }
public List <OcrResults> Process(TextRecognitionSettings settings) { var results = new List <OcrResults>(); if (settings.IsBinarizationEnable) { Binarize(); } if (settings.IsNoiseRemovalEnable) { RemoveNoise(); } if (settings.IsContrastAdjusmentEnable) { AdjustContrast(); } if (settings.IsRotationEnable) { var angle = PredictTurningAngle(); if (angle != 0) { Rotate(angle); } } OcrImage(OcrEngines.Tesseract); if (settings.IsRotationEnable && !IsOCRedTextValid()) { Rotate(180); OcrImage(OcrEngines.Tesseract); } var paragraphs = TextHelper.SplitTextIntoParagraphs(_ocredText); for (var i = 0; i < paragraphs.Length; i++) { if (settings.IsWordsCorrectionEnable) { paragraphs[i] = CorrectOCRedText(@"Resources\EnglishDictionary.json", paragraphs[i]); } string[] typeKeyWords = new string[0]; if (settings.IsTypeRecognitionEnable) { var type = PredictType(); typeKeyWords = GetSpecialTypeKeyWords(type); } var ocrResult = new OcrResults { FileName = _inputFileName }; if (settings.KeyWords.Length > 0) { ocrResult.KeyWords = WordsFinder.GetCountedKeyWordsFromText(paragraphs[i], settings.KeyWords); } if (typeKeyWords.Length > 0) { var foundTypeKeyWords = WordsFinder.GetCountedKeyWordsFromText(paragraphs[i], typeKeyWords); if (string.IsNullOrEmpty(ocrResult.KeyWords)) { ocrResult.KeyWords = foundTypeKeyWords; } else { ocrResult.KeyWords += foundTypeKeyWords; } } if (settings.KeyWords.Length > 0 && string.IsNullOrEmpty(ocrResult.KeyWords)) { continue; } else { ocrResult.OcredText = paragraphs[i]; } results.Add(ocrResult); } return(results); }