private static void Main() { var totalTime = Stopwatch.StartNew(); const int numberOfAngramWordsTofilter = 2; const int numberOfAnagramWordToFind = 48162; var readFile = Stopwatch.StartNew(); var wordsFromFile = new WordsFromFile(); var filePath = wordsFromFile.GetFilePath("wordlist.txt"); var wordsInFile = wordsFromFile.ReadFile(filePath, "ISO-8859-1"); var splittedWords = wordsFromFile.SplitString(wordsInFile, new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); readFile.Stop(); var findAllAnagrams = Stopwatch.StartNew(); var anagrams = new Anagrams(); var foundAnagrams = anagrams.FindAnagrams(splittedWords); findAllAnagrams.Stop(); var timeToPrint = Stopwatch.StartNew(); var printInfo = new PrintInfo(); printInfo.Print(numberOfAngramWordsTofilter, numberOfAnagramWordToFind, splittedWords, foundAnagrams); timeToPrint.Stop(); Console.WriteLine($"\n Time to read file from disk and split into words: {readFile.ElapsedMilliseconds}ms."); Console.WriteLine($"\n Time to find all anagrams: {findAllAnagrams.ElapsedMilliseconds}ms."); Console.WriteLine($"\n Time to print all information: {timeToPrint.ElapsedMilliseconds}ms."); Console.WriteLine($"\n Time to run this application: {totalTime.ElapsedMilliseconds}ms."); Console.ReadKey(); }
public void CompileDictionaryBadFormat() { WordsFromFile wordsFromFile = new WordsFromFile(); string[] textFromFile = new string[14]; textFromFile[0] = "word - answer1,answer2"; textFromFile[1] = "word - answer1 answer2;"; textFromFile[2] = "word- answer1,answer2;"; textFromFile[3] = "word -answer1,answer2;"; textFromFile[4] = "word-answer1,answer2;"; textFromFile[5] = "word - answer1 ,answer2;"; textFromFile[6] = "word - answer1, answer2;"; textFromFile[7] = "word - answer1,answer2 ;"; textFromFile[8] = "word1,word2 - answer1,answer2;"; textFromFile[9] = "word1 word2 - answer1,answer2;"; textFromFile[10] = "word - answer1 - answer2;"; textFromFile[11] = " word - answer1,answer2;"; textFromFile[12] = "word - answer1,answer2;"; textFromFile[13] = "word - answer1,answer2;"; Dictionary <string, List <string> > translationsDictionary = wordsFromFile.CompileDictionary(textFromFile); Assert.AreEqual(translationsDictionary.Keys.Count, 4); Assert.AreEqual(translationsDictionary.Keys.First(), "word1,word2"); Assert.AreEqual(translationsDictionary.Keys.ElementAt(1), "word2"); Assert.AreEqual(translationsDictionary.Keys.ElementAt(2), "answer1"); Assert.AreEqual(translationsDictionary.Keys.ElementAt(3), "word"); Assert.AreEqual(translationsDictionary.Values.Count, 4); Assert.AreEqual(translationsDictionary.Values.First()[0], "answer1"); Assert.AreEqual(translationsDictionary.Values.First()[1], "answer2"); Assert.AreEqual(translationsDictionary.Values.ElementAt(1)[0], "answer1"); Assert.AreEqual(translationsDictionary.Values.ElementAt(1)[1], "answer2"); Assert.AreEqual(translationsDictionary.Values.ElementAt(2)[0], "answer2"); Assert.AreEqual(translationsDictionary.Values.ElementAt(3)[0], "answer1"); Assert.AreEqual(translationsDictionary.Values.ElementAt(3)[1], "answer2"); }
public void CompileDictionaryNoWordNoAnswers() { WordsFromFile wordsFromFile = new WordsFromFile(); string[] textFromFile = new string[1]; textFromFile[0] = " - "; Dictionary <string, List <string> > translationsDictionary = wordsFromFile.CompileDictionary(textFromFile); Assert.AreEqual(translationsDictionary.Keys.Count, 0); Assert.AreEqual(translationsDictionary.Values.Count, 0); }
public void CompileDictionaryOneAnswer() { WordsFromFile wordsFromFile = new WordsFromFile(); string[] textFromFile = new string[1]; textFromFile[0] = "word - answer;"; Dictionary <string, List <string> > translationsDictionary = wordsFromFile.CompileDictionary(textFromFile); Assert.AreEqual(translationsDictionary.Keys.Count, 1); Assert.AreEqual(translationsDictionary.Keys.First(), "word"); Assert.AreEqual(translationsDictionary.Values.Count, 1); Assert.AreEqual(translationsDictionary.Values.First()[0], "answer"); }