public Dictionary <string, List <string> > GetAnagrams(string filePath) { List <string> words = ReadFile(filePath); Anagram.Anagram anagram = new Anagram.Anagram(); return(anagram.ComputeAnagrams(words)); }
static void Main(string[] args) { string possibleAnagram1 = Console.ReadLine(); string possibleAnagram2 = Console.ReadLine(); Anagram anagram = new Anagram(possibleAnagram1, possibleAnagram2); Console.WriteLine(anagram.Check()); }
//private const string inputFile = "WordListAllEnglishWords.txt"; static void Main(string[] args) { Console.WriteLine("*** Tests Started {0} ***\n\n", DateTime.Now); var anagram = new Anagram(); var testsToRun = testDataList; // All Tests //var testsToRun = testDataList.Where(x => x.TestNumber == 1); // Specific Test //var testsToRun = testDataList.Where(x => x.ExpectedResult); // Positive Tests //var testsToRun = testDataList.Where(x => !x.ExpectedResult); // Negative Tests foreach (var testData in testsToRun) { Console.WriteLine("{0}\tSTARTING TEST {1}\n", DateTime.Now, testData.TestNumber); anagram.FindSecretPhrase(testData.HintPhrase, testData.MD5HashKey, testData.InputFile); anagram.PrintFullStats(); testData.ReturnedResult = anagram.SecretPhraseFound; testData.ReturnedSecretPhrase = anagram.SecretPhrase; testData.TotalTime = anagram.TotalTime; testData.WordsFiltered = anagram.WordsFiltered; testData.NodesAdded = anagram.NumNodes; } if (!testsToRun.Any(x => !x.TestPassed)) { Console.WriteLine("ALL TESTS PASSED\n"); } var headerRow = new string[] { "Test #", "Result", "Total Time", "Words Filtered", "Nodes Added" }; TablePrinter.PrintLine(); TablePrinter.PrintRow(headerRow); TablePrinter.PrintLine(); foreach (var testData in testsToRun) { TablePrinter.PrintRow(new string[] { testData.TestNumber.ToString(), testData.TestPassed ? " Passed " : "*Failed*", testData.TotalTime.ToString(), testData.WordsFiltered.ToString(), testData.NodesAdded.ToString() }); } TablePrinter.PrintLine(); var doubleAverageTicks = testsToRun.Average(timeSpan => timeSpan.TotalTime.Ticks); var longAverageTicks = Convert.ToInt64(doubleAverageTicks); var averageTime = new TimeSpan(longAverageTicks); Console.WriteLine(string.Format("\nAverage Time = {0}", averageTime)); Console.WriteLine("\n\n*** Tests Ended {0} ***\n", DateTime.Now); Console.ReadLine(); }
public void anagram_true() { List <string> testWords = new List <string> { "llohe", "Cherio", "heoll" }; //"llohe","Cherio", "heoll" Anagram test = new Anagram("hello", testWords); Assert.Equal("heoll", test.GetAnagram()[1]); }
public static void Main() { Anagram myAnagram = new Anagram(); Console.WriteLine("Input an initial word."); string inputWord = Console.ReadLine(); Console.WriteLine("Input a list of possible anagram words"); string wordList = Console.ReadLine(); string result = myAnagram.Comparision(wordList, inputWord); Console.WriteLine(anagramWord); }
public HomeModule() { Get["/"] = _ => { return(View["index.cshtml"]); }; Get["/anagram"] = _ => { List <string> newList = new List <string> { Request.Query["word1"], Request.Query["word2"], Request.Query["word3"], Request.Query["word4"], Request.Query["word5"] }; Anagram newAnagram = new Anagram( Request.Query["anagram"], newList); List <string> newList2 = newAnagram.GetAnagram(); return(View["anagram.cshtml", newList2]); }; }
public void IsAnagramMultipleWords_ReturnAnagramsWithoutDuplicates_true() { Anagram test = new Anagram() { }; List <string> testList = new List <string>() { "bread", "beard", "rock", "pig" }; List <string> expectedResults = new List <string>() { "bread", "beard" }; Assert.Equal(expectedResults, test.IsAnagramMultipleWords(testList)); }
public HomeModule() { Get["/"] = _ => { return(View["index.cshtml"]); }; Post["/anagram_generated"] = _ => { List <string> inputWords = new List <string>() { Request.Form["anagram1"], Request.Form["anagram2"], Request.Form["anagram3"], Request.Form["anagram4"], Request.Form["anagram5"], }; Anagram newAnagram = new Anagram() { }; List <string> results = new List <string>() { }; results = newAnagram.IsAnagramMultipleWords(inputWords); return(View["anagram_generated.cshtml", results]); }; Post["/partial_anagram_generated"] = _ => { string results; Anagram newAnagram = new Anagram() { }; if (newAnagram.IsAnagramPartial(Request.Form["partial1"], Request.Form["partial2"])) { results = "true"; } else { results = "false"; } return(View["/partial_anagram_generated.cshtml", results]); }; }
public List <string> IsAnagramMultipleWords(List <string> words) { List <string> results = new List <string>() { }; for (int i = 0; i < words.Count; i++) { for (int j = 0; j < words.Count; j++) { if (i != j) { Anagram testObject = new Anagram() { }; if (testObject.IsAnagram(words[i], words[j])) { results.Add(words[i]); results.Add(words[j]); } } } } for (int i = 0; i < results.Count; i++) { for (int j = 0; j < results.Count; j++) { if (i != j) { if (results[i] == results[j]) { results.RemoveAt(j); } } } } return(results); }
static void Main(string[] args) { string firstString, secondString; //Gets words from user. Console.WriteLine("Enter first string"); firstString = Console.ReadLine(); Console.WriteLine("Enter second string"); secondString = Console.ReadLine(); Anagram anagram = new Anagram(); //Check if words are anagram if (anagram.areAnagram(firstString, secondString) == true) { Console.WriteLine("Both string are anagram string."); } else { Console.WriteLine("Both string are not anagram string."); } Console.ReadLine(); }
public static void Main() { bool isDone = true; Console.WriteLine("Please enter your Word to check for anagram"); string firstWord = Console.ReadLine(); while (isDone == true) { Console.WriteLine("Would you like to add a new word or compare to anagram word? (add/compare)"); string userInput = Console.ReadLine(); if (userInput == "add") { Console.WriteLine("Please enter your item "); string newWord1 = Console.ReadLine(); Anagram newAnagram = new Anagram(newWord1); newAnagram.Save(); } else if (userInput == "compare") { isDone = false; } } List <Anagram> instances = Anagram.GetList(); Console.WriteLine("These words are anagrams of " + firstWord); foreach (Anagram word in instances) { // Anagram newAnagram1 = new Anagram ("something"); string wordX = Anagram.anagramWordSort(firstWord); string wordY = Anagram.anagramWordSort(word.GetCompareWord()); if (Anagram.CompareTwoWords(wordX, wordY)) { Console.WriteLine(word.GetCompareWord()); } } }
public static void Main() { List <string> testList = new List <string> { }; Anagram newAnagram = new Anagram("", testList); Console.WriteLine("Enter a word."); string wordToCheck = Console.ReadLine(); Console.WriteLine("Now enter any words (seperated with spaces) you think may be anagrams of your first word."); string wordList = Console.ReadLine(); testList = wordList.Split(' ').ToList(); newAnagram.SetWord(wordToCheck); newAnagram.SetWordList(testList); List <string> resultList = newAnagram.CheckWordList(); System.Console.WriteLine("Anagrams for the word " + wordToCheck + " include: "); foreach (string word in resultList) { System.Console.WriteLine(word); } }
public void AnagramTest_MultipleAreAnagramsTrue() { var testAnagram = new Anagram(); Assert.Equal(true, testAnagram.IsAnagram("read", "dare dear")); }
public void AnagramTest_StringIsAnagramTrue() { var testAnagram = new Anagram(); Assert.Equal(true, testAnagram.IsAnagram("read", "dear")); }
public void AnagramTest_StringsMatchFalse() { var testAnagram = new Anagram(); Assert.Equal(false, testAnagram.IsAnagram("n", "a")); }
public void Test1(string str1, string str2) { Anagram anagram = new Anagram(); Assert.True(anagram.TestAnagram(str1, str2)); }
public void AnagramTest_StringsMatchTrue() { var testAnagram = new Anagram(); Assert.Equal(true, testAnagram.IsAnagram("n", "n")); }
public void AnagramTest_MultipleAreAnagramsFalse() { var testAnagram = new Anagram(); Assert.Equal(false, testAnagram.IsAnagram("read", "zare zear")); }
public void AnagramTest_StringIsAnagramFalse() { var testAnagram = new Anagram(); Assert.Equal(false, testAnagram.IsAnagram("read", "reed")); }
public void AddNodes(Anagram anagram) { var queue = new Queue<Node>(); var stringBuilder = new StringBuilder(anagram.HintPhrase.Length); queue.Enqueue(new Node(null, null, 0)); // add root node anagram.NumNodes++; while (queue.Count > 0) { var currentNode = queue.Dequeue(); var currentPhrase = currentNode.GetFullPhrase(); var newWordNumber = currentNode.WordNumber + 1; stringBuilder.Clear().Append(currentPhrase); var endIndexOfCurrentPhrase = stringBuilder.Length; foreach (var keyWordListPair in anagram.WordHash) { if (!string.IsNullOrEmpty(currentPhrase)) { stringBuilder.Append(" "); } stringBuilder.Append(keyWordListPair.Key); var lengthToRemove = stringBuilder.Length - endIndexOfCurrentPhrase; if (anagram.IsPhraseValid(stringBuilder.ToString(), newWordNumber)) { // loop through each word that matches the key foreach (var newWord in keyWordListPair.Value) { if (newWordNumber == anagram.NumWords) { stringBuilder.Remove(endIndexOfCurrentPhrase, lengthToRemove); if (stringBuilder.Length > 0) { stringBuilder.Append(" "); } stringBuilder.Append(newWord); anagram.VerifyMd5Hash(stringBuilder.ToString()); if (anagram.SecretPhraseFound) { return; } } else if (newWordNumber < anagram.NumWords) { queue.Enqueue(new Node(newWord, currentNode, newWordNumber)); anagram.NumNodes++; } } } stringBuilder.Remove(endIndexOfCurrentPhrase, lengthToRemove); } } }