Exemple #1
0
        public ShapeSearchResultModel Search(ShapeSearchRequestModel search)
        {
            var grid = _gridGenerator.Generate(_appConfig.GridSize);

            ITriangle result = null;

            if (search.SearchBy.Equals("name", System.StringComparison.InvariantCultureIgnoreCase))
            {
                result = grid.FindTriangleByName(search.Name);
            }
            else if (search.SearchBy.Equals("coordinates", System.StringComparison.InvariantCultureIgnoreCase))
            {
                var searchVertex = new TriangularVertex(new Coordinates(search.Vertex1), new Coordinates(search.Vertex2), new Coordinates(search.Vertex3));
                result = grid.FindTriangleByCoordinates(searchVertex);
            }

            if (result == null)
            {
                return(null);
            }

            return(new ShapeSearchResultModel
            {
                Name = result.Name,
                IsBottom = result.IsBottom,
                Vertex1 = result.Vertices.Vertex1,
                Vertex2 = result.Vertices.Vertex2,
                Vertex3 = result.Vertices.Vertex3,
                ParentCellX = result.ParentCell.Coordinates.X,
                ParentCellY = result.ParentCell.Coordinates.Y
            });
        }
Exemple #2
0
        public void Vertices_ExhaustiveTestForAllTrianglesIn3By3Grid(int parentCellX, int parentCellY, bool isBottom, TriangularVertex expectedVertex)
        {
            // Arrange
            var parentCell = new Mock <IGridCell>();

            parentCell.Setup(x => x.Coordinates).Returns(new Coordinates(parentCellX, parentCellY));
            parentCell.Setup(x => x.ParentGrid.Size).Returns(3);

            var sut = new TriangleBuilder()
                      .WithIsTriangleOnBottom(isBottom)
                      .WithNonHypotenuseSideLength(10)
                      .WithParentGridCell(parentCell)
                      .Build();

            // Act
            var result = sut.Vertices;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(expectedVertex.Vertex1, result.Vertex1, "Vertex1");
            Assert.AreEqual(expectedVertex.Vertex2, result.Vertex2, "Vertex2");
            Assert.AreEqual(expectedVertex.Vertex3, result.Vertex3, "Vertex3");
        }