public void Search(object obj, object objj)
        {
            // Arrange
            string    word           = (string)obj;
            List <XY> expectedPoints = (List <XY>)objj;

            // Act

            WordSearch wordSearch   = new WordSearch(GetMatrix());
            var        actualPoints = wordSearch.Search(word);
            XYComparer xYComparer   = new XYComparer();

            // Assert

            CollectionAssert.AreEqual(expectedPoints, actualPoints, xYComparer);
        }
        public void Search_HorizontalReverse(string word)
        {
            // Arrange

            List <XY> expectedPoints = new List <XY>
            {
                new XY(4, 7),
                new XY(3, 7),
                new XY(2, 7),
                new XY(1, 7)
            };

            // Act

            WordSearch wordSearch   = new WordSearch(GetMatrix());
            var        actualPoints = wordSearch.HorizontalReverseSearch(word);
            XYComparer xYComparer   = new XYComparer();

            // Assert

            CollectionAssert.AreEqual(expectedPoints, actualPoints, xYComparer);
        }
        public void Search_Diagonal_Upward(string word)
        {
            // Arrange

            List <XY> expectedPoints = new List <XY>
            {
                new XY(3, 3),
                new XY(2, 2),
                new XY(1, 1),
                new XY(0, 0)
            };

            // Act

            WordSearch wordSearch   = new WordSearch(GetMatrix());
            var        actualPoints = wordSearch.DiagonalUpwardSearch(word);
            XYComparer xYComparer   = new XYComparer();

            // Assert

            CollectionAssert.AreEqual(expectedPoints, actualPoints, xYComparer);
        }
        public void Search_Vertical_Upward(string word)
        {
            // Arrange

            List <XY> expectedPoints = new List <XY>
            {
                new XY(5, 9),
                new XY(5, 8),
                new XY(5, 7),
                new XY(5, 6)
            };

            // Act

            WordSearch wordSearch   = new WordSearch(GetMatrix());
            var        actualPoints = wordSearch.VerticalUpwardSearch(word);
            XYComparer xYComparer   = new XYComparer();

            // Assert

            CollectionAssert.AreEqual(expectedPoints, actualPoints, xYComparer);
        }