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 }); }
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"); }