예제 #1
0
        public void BreakListIntoCharList_ReturnListofCharLists()
        {
            string        word      = "evil";
            string        listCheck = "big boy butts";
            List <string> big       = new List <string> {
                "b", "i", "g"
            };
            List <string> boy = new List <string> {
                "b", "o", "y"
            };
            List <string> butts = new List <string> {
                "b", "u", "t", "t", "s"
            };
            List <List <string> > listOfCharLists = new List <List <string> >()
            {
                big, boy, butts
            };
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, listCheck);

            List <List <string> > newListOfLists = new List <List <string> > {
            };

            newAnagramGenerator.BreakString();
            // newAnagramGenerator.SplitCompareList();
            newListOfLists = newAnagramGenerator.GetSplitCompareList();

            for (int index = 0; index < newListOfLists.Count; index++)
            {
                CollectionAssert.AreEqual(listOfCharLists[index], newListOfLists[index]);
            }
        }
예제 #2
0
        public void AnagramsAreUpperCase()
        {
            const string word    = "Oxford Circus";
            var          anagram = AnagramGenerator.GenerateAnagram(word);

            Assert.Equal(anagram.ToUpper(), anagram);
        }
예제 #3
0
        public void SplitListIntoCharLists_ReturnListofCharLists()
        {
            //Arrange
            string        word         = "bread";
            string        unbrokenList = "banana mouse butts";
            List <string> banana       = new List <string> {
                "b", "a", "n", "a", "n", "a"
            };
            List <string> mouse = new List <string> {
                "m", "o", "u", "s", "e"
            };
            List <string> butts = new List <string> {
                "b", "u", "t", "t", "s"
            };
            List <List <string> > listOfCharLists = new List <List <string> >()
            {
                banana, mouse, butts
            };
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, unbrokenList);

            newAnagramGenerator.SplitCompareList();

            //Act
            List <List <string> > newListofLists = new List <List <string> > {
            };

            newAnagramGenerator.SplitCharacterCompareList();
            newListofLists = newAnagramGenerator.GetSplitCharacterCompareList();

            //Assert
            for (int index = 0; index < newListofLists.Count; index++)
            {
                CollectionAssert.AreEqual(listOfCharLists[index], newListofLists[index]);
            }
        }
예제 #4
0
        public void Test_ConvertVectorCombinationsToKeyCombinations()
        {
            var dict      = new[] { "a", "tea", "ate", "eat" };
            var generator = new AnagramGenerator(dict, 1);
            var phrase    = "aaet";

            generator.Initialize(phrase);
            var combinations = new[]
            {
                new [] { CreateVector(1), CreateVector(1, 1, 1) },
                new [] { CreateVector(1, 1, 1), CreateVector(1) }
            };

            var expected = new[]
            {
                new [] { "a", "aet" },
                new [] { "aet", "a" }
            }
            .ToList();

            var actual = generator.ConvertVectorCombinationsToKeyCombinations(combinations).ToList();

            Assert.AreEqual(2, actual.Count);

            CollectionAssert.AreEquivalent(expected.SelectMany(w => w).ToList(), actual.SelectMany(w => w).ToList());
        }
예제 #5
0
        public void CreatesAnAnagramOfAWord()
        {
            const string word    = "Tottenham Court Road";
            var          anagram = AnagramGenerator.GenerateAnagram(word);

            Assert.True(TestHelpers.AreAnagrams(word, anagram));
            Assert.NotEqual(word, anagram);
        }
예제 #6
0
        public ActionResult Display()
        {
            AnagramGenerator newAnagramGenerator = new AnagramGenerator();
            string           wordToCompare       = Request.Form["word-to-compare"];
            List <string>    wordList            = new List <string>()
            {
                Request.Form["word-one"], Request.Form["word-two"], Request.Form["word-three"], Request.Form["word-four"], Request.Form["word-five"]
            };
            List <string> matchingAnagrams = newAnagramGenerator.ReturnAnagramMatches(wordToCompare, wordList);

            return(View(matchingAnagrams));
        }
예제 #7
0
        public void Anagram_SetWord_ReturnWord()
        {
            string word      = "evil";
            string listCheck = "big boy";

            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, listCheck);

            string newWord      = newAnagramGenerator.GetWord();
            string newListCheck = newAnagramGenerator.GetListCheck();

            Assert.AreEqual(word, newWord);
            Assert.AreEqual(listCheck, newListCheck);
        }
예제 #8
0
        public void Test_GetSentenceByKeys()
        {
            var dict      = new[] { "a", "tea", "ate", "eat" };
            var generator = new AnagramGenerator(dict, 1);
            var phrase    = "aaet";

            generator.Initialize(phrase);

            var actual = generator.GetSentenceByKeys(new[] { "a", "aet" }).ToList();

            Assert.AreEqual(3, actual.Count);
            CollectionAssert.AreEquivalent(new[] { "a eat", "a tea", "a ate" }, actual);
        }
예제 #9
0
        public void GetInput_ReturnInput()
        {
            //Arrange
            string           word                = "bread";
            string           unbrokenList        = "banana mouse";
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, unbrokenList);

            //Act
            string newWord         = newAnagramGenerator.GetWord();
            string newUnbrokenList = newAnagramGenerator.GetUnbrokenList();

            //Assert
            Assert.AreEqual(word, newWord);
            Assert.AreEqual(newUnbrokenList, unbrokenList);
        }
예제 #10
0
        public void GetWord_ReturnWord_String()
        {
            //Arrange
            string word = "beard";

            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word);

            newAnagramGenerator.Save();

            //Act
            string result = newAnagramGenerator.GetDescription();

            //Assert
            Assert.AreEqual(word, result);
        }
예제 #11
0
        public void AskForUserInput(int minLength, int anagramNumber)
        {
            bool endApp = false;

            Console.WriteLine("Console Anagram Generator in C#\r");
            Console.WriteLine("------------------------\n");

            while (!endApp)
            {
                string word = GetWord(minLength);
                var    myAnagramGenerator = new AnagramGenerator();
                var    display            = new Display();
                // display.PrintGeneratedAnagrams();
                endApp = AskToEndApp();
            }
        }
예제 #12
0
        public void CompareSplitLists_ReturnMatchingWords()
        {
            //Arrange
            string        word       = "bread";
            List <string> sortedWord = new List <string> {
                "a", "b", "d", "e", "r"
            };
            string        unbrokenList = "banana mouse beard";
            List <string> banana       = new List <string> {
                "b", "a", "n", "a", "n", "a"
            };
            List <string> mouse = new List <string> {
                "m", "o", "u", "s", "e"
            };
            List <string> beard = new List <string> {
                "b", "e", "a", "r", "d"
            };
            List <List <string> > listOfCharLists = new List <List <string> >()
            {
                banana, mouse, beard
            };
            AnagramGenerator      newAnagramGenerator = new AnagramGenerator(word, unbrokenList);
            List <List <string> > newListofLists      = new List <List <string> > {
            };

            newAnagramGenerator.SplitCompareList();
            newAnagramGenerator.SplitCharacterCompareList();

            newAnagramGenerator.SplitWordList();

            //Act
            List <string> sortedWordChar = new List <string> {
            };

            sortedWordChar = newAnagramGenerator.GetWordCharList();
            sortedWordChar.Sort();
            newAnagramGenerator.SortCompareList();
            newAnagramGenerator.CompareSortedListToSortedWord();
            newListofLists = newAnagramGenerator.GetResult();

            //Assert
            for (int index = 0; index < newListofLists.Count; index++)
            {
                CollectionAssert.AreEqual(sortedWordChar, newListofLists[index]);
            }
        }
예제 #13
0
        public void BreakWordIntoChar_ReturnCharList()
        {
            string        word      = "evil";
            string        listCheck = "big boy";
            List <string> charList  = new List <string> {
                "e", "v", "i", "l"
            };
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, listCheck);

            List <string> newList = new List <string> {
            };

            newAnagramGenerator.CreateCharList();
            newList = newAnagramGenerator.GetWordCharList();

            CollectionAssert.AreEqual(charList, newList);
        }
예제 #14
0
        public void SeperateListCheck_ReturnNewList()
        {
            string        word      = "evil";
            string        listCheck = "big boy";
            List <string> test      = new List <string> {
                "big", "boy"
            };
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, listCheck);

            newAnagramGenerator.BreakString();
            List <string> newList = new List <string> {
            };

            newList = newAnagramGenerator.GetCompareList();

            CollectionAssert.AreEqual(newList, test);
        }
예제 #15
0
        public async Task <ActionResult <List <string> > > Get(string id, [FromQuery] int numberOfAnagramsToGenerate)
        {
            if (numberOfAnagramsToGenerate == 0)
            {
                numberOfAnagramsToGenerate = 1;
            }

            var anagramGenerator = new AnagramGenerator();
            var items            = await anagramGenerator.GenerateAnagrams(id, numberOfAnagramsToGenerate, Configuration["ConnectionString"]);

            if (items.Count < 1)
            {
                return(NotFound());
            }

            var codeFirstDataBase = new CodeFirstDataBase();
            await codeFirstDataBase.SaveUserLog(HttpContext.Connection.RemoteIpAddress.ToString(), id, Configuration["ConnectionString"]);

            return(items);
        }
예제 #16
0
        public void SeperateString_ReturnNewList()
        {
            //Arrange
            string        word         = "bread";
            string        unbrokenList = "banana mouse";
            List <string> test         = new List <string> {
                "banana", "mouse"
            };
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, unbrokenList);

            //Act
            newAnagramGenerator.SplitCompareList();
            List <string> newList = new List <string> {
            };

            newList = newAnagramGenerator.GetCompareList();

            //Assert
            CollectionAssert.AreEqual(newList, test);
        }
예제 #17
0
        public void SplitWordIntoChar_ReturnCharList()
        {
            //Arrange
            string        word         = "bread";
            string        unbrokenList = "banana mouse";
            List <string> charList     = new List <string> {
                "b", "r", "e", "a", "d"
            };
            AnagramGenerator newAnagramGenerator = new AnagramGenerator(word, unbrokenList);

            //Act
            List <string> newList = new List <string> {
            };

            newAnagramGenerator.SplitWordList();
            newList = newAnagramGenerator.GetWordCharList();

            //Assert
            CollectionAssert.AreEqual(charList, newList);
        }
예제 #18
0
 public void SetUp()
 {
     dictionaryManager = new DictionaryManager();
     anagramGenerator  = new AnagramGenerator();
 }
예제 #19
0
        public void AreCharactersGreaterThanEachOther()
        {
            AnagramGenerator testAnagramGenerator = new AnagramGenerator();

            Assert.AreEqual(true, testAnagramGenerator.BIsGreaterThanA('a', 'b'));
        }