Пример #1
0
        public void ValidatesBoard(string board, int numCol, int numRow, bool expected)
        {
            //Arrange
            Mock <ITrieBuilder> trieBuilderMock = new Mock <ITrieBuilder>();

            BoggleWordSearchService boggleWordSearchService = new BoggleWordSearchService(trieBuilderMock.Object);

            //Act
            bool result = boggleWordSearchService.IsValidBoggleBoard(board, numCol, numRow);

            //Assert
            Assert.AreEqual(expected, result);
        }
Пример #2
0
        public void BoardArrayBuiltCorrectly()
        {
            //Arrange
            Mock <ITrieBuilder> trieBuilderMock = new Mock <ITrieBuilder>();
            string board  = "EEEOBASOOTALSANI";
            int    numCol = 4;
            int    numRow = 4;

            BoggleWordSearchService boggleWordSearchService = new BoggleWordSearchService(trieBuilderMock.Object);

            char[,] expectedArray = new char[4, 4];

            //Row 1 EEEO
            expectedArray[0, 0] = 'E';
            expectedArray[0, 1] = 'E';
            expectedArray[0, 2] = 'E';
            expectedArray[0, 3] = 'O';

            //Row 2 BASO
            expectedArray[1, 0] = 'B';
            expectedArray[1, 1] = 'A';
            expectedArray[1, 2] = 'S';
            expectedArray[1, 3] = 'O';

            //Row 3 OTAL
            expectedArray[2, 0] = 'O';
            expectedArray[2, 1] = 'T';
            expectedArray[2, 2] = 'A';
            expectedArray[2, 3] = 'L';

            //Row 4 SANI
            expectedArray[3, 0] = 'S';
            expectedArray[3, 1] = 'A';
            expectedArray[3, 2] = 'N';
            expectedArray[3, 3] = 'I';

            //Act
            var builtArray = boggleWordSearchService.CreateBoggleBoard(board, numCol, numRow);

            //only care that tries look the same.
            var resultString   = Newtonsoft.Json.JsonConvert.SerializeObject(builtArray);
            var expectedString = Newtonsoft.Json.JsonConvert.SerializeObject(expectedArray);

            //Assert
            Assert.AreEqual(expectedString, resultString);
        }
Пример #3
0
        public void Puzzle3Test()
        {
            //Arrange
            IDictionaryRepository dictionaryRepository = new DictionaryRepository();

            ITrieBuilder trieBuilder = new TrieBuilder(dictionaryRepository);

            BoggleWordSearchService boggleWordSearchService = new BoggleWordSearchService(trieBuilder);
            var board           = "FVKOWQIMEZTLRPBE";
            var expectedResults = Solution3Results();

            //Act
            HashSet <string> result = boggleWordSearchService.FindWordsInBoggle(board, 4, 4);

            //only care that tries look the same.
            var resultString   = Newtonsoft.Json.JsonConvert.SerializeObject(result.OrderBy(keys => keys));
            var expectedString = Newtonsoft.Json.JsonConvert.SerializeObject(expectedResults);

            //Assert
            Assert.AreEqual(expectedString, resultString);
        }
Пример #4
0
        public void Puzzle5By5Test()
        {
            //Arrange
            Mock <IDictionaryRepository> dictionaryRepositoryMock = new Mock <IDictionaryRepository>();

            dictionaryRepositoryMock.Setup(x => x.GetWords()).Returns(Solution5By5Results().ToList);

            ITrieBuilder trieBuilder = new TrieBuilder(dictionaryRepositoryMock.Object);

            BoggleWordSearchService boggleWordSearchService = new BoggleWordSearchService(trieBuilder);
            var board           = "sabtebralnuetoenrkeseqnss";
            var expectedResults = Solution5By5Results();

            //Act
            HashSet <string> result = boggleWordSearchService.FindWordsInBoggle(board, 5, 5);

            //only care that tries look the same.
            var resultString   = Newtonsoft.Json.JsonConvert.SerializeObject(result.OrderBy(keys => keys));
            var expectedString = Newtonsoft.Json.JsonConvert.SerializeObject(expectedResults.OrderBy(keys => keys));

            //Assert
            Assert.AreEqual(expectedString, resultString);
        }