public void Insert() { using (var wordsCounter = WordsCounter.Instance()) { const string firstKey = "1"; wordsCounter.Insert(firstKey, "ABC"); Assert.AreEqual(1, wordsCounter.WordDictionary.Count()); Assert.AreEqual(firstKey, wordsCounter.WordDictionary.First().Key); Assert.AreEqual(1, wordsCounter.WordDictionary.First().Value.Count); Assert.AreEqual("ABC", wordsCounter.WordDictionary.First().Value.First()); } }
public void Insert_By_Long() { using (var wordsCounter = WordsCounter.Instance()) { const long firstKey = 1; wordsCounter.Insert(firstKey, "ABC"); Assert.AreEqual(1, wordsCounter.WordDictionaryByPrimeNumber.Count()); Assert.AreEqual(firstKey, wordsCounter.WordDictionaryByPrimeNumber.First().Key); Assert.AreEqual(1, wordsCounter.WordDictionaryByPrimeNumber.First().Value.Count); Assert.AreEqual("ABC", wordsCounter.WordDictionaryByPrimeNumber.First().Value.First()); } }
public void Insert_Duplicate_Case_Sensitive() { using (var wordsCounter = WordsCounter.Instance()) { const string firstKey = "1"; wordsCounter.Insert(firstKey, "ABC"); wordsCounter.Insert(firstKey, "abc"); Assert.AreEqual(1, wordsCounter.WordDictionary.Count()); Assert.AreEqual(firstKey, wordsCounter.WordDictionary.First().Key); Assert.AreEqual(2, wordsCounter.WordDictionary.First().Value.Count()); Assert.AreEqual("ABC", wordsCounter.WordDictionary.First().Value.First()); Assert.AreEqual("abc", wordsCounter.WordDictionary.First().Value[1]); } }
static void Output(WordsCounter wordCounter, string fileName, double timeTook) { using (var writer = new StreamWriter(fileName)) { foreach (var words in wordCounter.WordDictionary.OrderByDescending(list => list.Value.Count())) { foreach (var word in words.Value) { //Console.Write(word + " "); writer.Write(word + " "); } //Console.WriteLine(); writer.WriteLine(); } writer.WriteLine(); writer.WriteLine("Time took: {0} seconds", timeTook); } }
public void Insert_Duplicate_Case_Sensitive_By_Long() { using (var wordsCounter = WordsCounter.Instance()) { const long firstKey = 1; wordsCounter.Insert(firstKey, "ABC"); wordsCounter.Insert(firstKey, "abc"); Assert.AreEqual(1, wordsCounter.WordDictionaryByPrimeNumber.Count()); Assert.AreEqual(firstKey, wordsCounter.WordDictionaryByPrimeNumber.First().Key); Assert.AreEqual(2, wordsCounter.WordDictionaryByPrimeNumber.First().Value.Count()); Assert.AreEqual("ABC", wordsCounter.WordDictionaryByPrimeNumber.First().Value.First()); Assert.AreEqual("abc", wordsCounter.WordDictionaryByPrimeNumber.First().Value[1]); } }
public void Insert_Multiple() { using (var wordsCounter = WordsCounter.Instance()) { const string firstKey = "1"; const string secondKey = "2"; wordsCounter.Insert(firstKey, "ABC"); wordsCounter.Insert(secondKey, "ABCD"); Assert.AreEqual(2, wordsCounter.WordDictionary.Count()); Assert.AreEqual(firstKey, wordsCounter.WordDictionary.First().Key); Assert.IsNotNull(wordsCounter.WordDictionary[secondKey]); Assert.AreEqual("ABC", wordsCounter.WordDictionary.First().Value.First()); Assert.AreEqual("ABCD", wordsCounter.WordDictionary[secondKey].First()); } }
public void Insert_Multiple_By_Long() { using (var wordsCounter = WordsCounter.Instance()) { const long firstKey = 1; const long secondKey = 2; wordsCounter.Insert(firstKey, "ABC"); wordsCounter.Insert(secondKey, "ABCD"); Assert.AreEqual(2, wordsCounter.WordDictionaryByPrimeNumber.Count()); Assert.AreEqual(firstKey, wordsCounter.WordDictionaryByPrimeNumber.First().Key); Assert.IsNotNull(wordsCounter.WordDictionaryByPrimeNumber[secondKey]); Assert.AreEqual("ABC", wordsCounter.WordDictionaryByPrimeNumber.First().Value.First()); Assert.AreEqual("ABCD", wordsCounter.WordDictionaryByPrimeNumber[secondKey].First()); } }
static void AnagramByPrimeNumber(WordsCounter wordCounter, DateTime time) { using (var reader = new StreamReader(@"..\..\..\wordlist.txt")) { while (!reader.EndOfStream) { var word = reader.ReadLine(); wordCounter.Insert(CharactersCounterByPrimeNumbers.Count(word), word); } } var timeTook = (DateTime.Now - time).TotalSeconds; Console.WriteLine(@"Took {0} seconds to process {1} words. ", timeTook, wordCount); Output(wordCounter, "Anagram By Prime Number Output.txt", timeTook); }
static void Main(string[] args) { var wordCounter = WordsCounter.Instance(); Console.WriteLine("Anagram..."); Console.WriteLine(); Console.WriteLine("Using Character List Method"); AnagramByCharacterList(wordCounter, DateTime.Now); Console.WriteLine(); Console.WriteLine("Using Character Prime Number Method"); AnagramByPrimeNumber(wordCounter, DateTime.Now); Console.WriteLine(); Console.WriteLine("Finished."); Console.ReadLine(); }
public void Dispose() { wordsCounter = null; }
public static WordsCounter Instance() { return wordsCounter ?? (wordsCounter = new WordsCounter()); }
public static WordsCounter Instance() { return(wordsCounter ?? (wordsCounter = new WordsCounter())); }