public void ShouldReturnReturnAStringListWithAllTheShapes() { GFTApplication.ShapesContainer container = new ShapesContainer(); GFTApplication.Models.Circle circle = new Models.Circle(1.7f, -5.05f, 6.9f); GFTApplication.Models.Square square = new Models.Square(3.55f, 4.1f, 2.77f); GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f); GFTApplication.Models.Triangle triangle = new Models.Triangle(4.5f, 1, -2.5f, -33, 23, 0.3f); GFTApplication.Models.Donut donut = new Models.Donut(4.5f, 7.8f, 1.5f, 1.8f); circle.Id = 1; square.Id = 2; rectangle.Id = 3; triangle.Id = 4; donut.Id = 5; container.AddShape(circle); container.AddShape(square); container.AddShape(rectangle); container.AddShape(triangle); container.AddShape(donut); List <string> shouldBe = new List <string>(); shouldBe.Add("shape 1: circle with center at (1.7, -5.05) and radius 6.9"); shouldBe.Add("shape 2: square with center at (3.55, 4.1) and side 2.77"); shouldBe.Add("shape 3: rectangle with center at (3.5, 2) and side1 5.6, side2 7.2"); shouldBe.Add("shape 4: triangle with coordinates at (4.5 1, -2.5 -33, 23 0.3)"); shouldBe.Add("shape 5: donut with center at (4.5, 7.8) and radius1 1.5, radius2 1.8"); CollectionAssert.AreEqual(shouldBe, container.GetShapeList().ToList()); }
public void ShouldFindShapesThatContainsTheSpecifiedPoint() { GFTApplication.ShapesContainer container = new ShapesContainer(); GFTApplication.Models.Circle circle = new Models.Circle(1.7f, -5.05f, 6.9f); GFTApplication.Models.Square square = new Models.Square(3.55f, 4.1f, 2.77f); GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f); GFTApplication.Models.Triangle triangle = new Models.Triangle(4.5f, 1, -2.5f, -33, 23, 0.3f); GFTApplication.Models.Donut donut = new Models.Donut(4.5f, 7.8f, 1.5f, 1.8f); circle.Id = 1; square.Id = 2; rectangle.Id = 3; triangle.Id = 4; donut.Id = 5; container.AddShape(circle); container.AddShape(square); container.AddShape(rectangle); container.AddShape(triangle); container.AddShape(donut); List <string> shouldBe = new List <string>(); shouldBe.Add("shape 1: circle with center at (1.7, -5.05) and radius 6.9 | Area: 149.571230371968"); shouldBe.Add("shape 4: triangle with coordinates at (4.5 1, -2.5 -33, 23 0.3) | Area: 316.950012207031"); shouldBe.Add("Total Area of shapes: 466.521242578999"); CollectionAssert.AreEqual(shouldBe, container.FindInPoint(1.5f, -5).ToList()); }
/// <summary> /// Validate the triangle model by default rules /// <seealso cref="https://en.wikipedia.org/wiki/Triangle#Similarity_and_congruence"/> /// </summary> /// <param name="triangle">The <see cref="Triangle"/> model to validate</param> /// <returns><see cref="TriangleType.Error"/> if not valid, otherwise goto next calculating step</returns> public override TriangleType HandleRequest(Models.Triangle triangle) { // sides should have positive values if (triangle.A <= 0 || triangle.B <= 0 || triangle.C <= 0) { // Logger.LogError(new TriangleHandlerException("sides should have positive values")) return(TriangleType.Error); } // summ of two sides should be more that last side if ((long)triangle.A + triangle.B <= triangle.C || (long)triangle.A + triangle.C <= triangle.B || (long)triangle.B + triangle.C <= triangle.A) { // Logger.LogError(new TriangleHandlerException("summ of two sides should be more that last side")) return(TriangleType.Error); } if (successor?.HandleRequest(triangle) != null) { return(successor.HandleRequest(triangle)); } // Logger.LogError(new TriangleHandlerException("Unexpected error")) return(TriangleType.Error); }
/// <summary> /// An isosceles triangle has two sides of equal length. /// </summary> /// <param name="triangle">The <see cref="Triangle"/> model to calculate</param> /// <returns>If is <see cref="TriangleType.Isosceles"/> return it, if not goto next calculating step</returns> public override TriangleType HandleRequest(Models.Triangle triangle) { if (triangle.A == triangle.B || triangle.A == triangle.C || triangle.B == triangle.C) { return(TriangleType.Isosceles); } return(successor?.HandleRequest(triangle) ?? TriangleType.Error); }
public void ShopuldReturnATriangle() { GFTApplication.Models.Triangle triangle = new Models.Triangle(4.5f, 1, -2.5f, -33, 23f, 0.3f); var real = GFTApplication.Interpreter.TokenReader.ReadToken("triangle 4.5 1 -2.5 -33 23 0.3"); triangle.Id = 1; real.Id = 1; Assert.AreEqual(triangle.ToString(), real.ToString()); }
/// <summary> /// An equilateral triangle has all sides the same length. /// </summary> /// <param name="triangle">The <see cref="Triangle"/> model to calculate</param> /// <returns>If is <see cref="TriangleType.Equilateral"/> return it, if not goto next calculating step</returns> public override TriangleType HandleRequest(Models.Triangle triangle) { // sides should have positive values if (triangle.A == triangle.B && triangle.A == triangle.C) { return(TriangleType.Equilateral); } return(successor?.HandleRequest(triangle) ?? TriangleType.Error); }
public void Triangle() { //arrange List <int> measurements = new List <int> { 7, 10, 5 }; var model = new Models.Triangle(measurements); //assert Assert.AreEqual(true, model.ValidTriangle); }
/// <summary> /// A scalene triangle has all its sides of different lengths. /// </summary> /// <param name="triangle">The <see cref="Triangle"/> model to calculate</param> /// <returns>If is <see cref="TriangleType.Scalene"/> return it, if not goto next calculating step</returns> public override TriangleType HandleRequest(Models.Triangle triangle) { if (triangle.A != triangle.B && triangle.A != triangle.C && triangle.B != triangle.C) { return(TriangleType.Scalene); } return(successor?.HandleRequest(triangle) ?? TriangleType.Error); }
public IActionResult Get(int V1X, int V1Y, int V2X, int V2Y, int V3X, int V3Y) { var triangle = new Models.Triangle(new Point(V1X, V1Y), new Point(V2X, V2Y), new Point(V3X, V3Y)); if (triangle.IsValid) { return(Ok(new { Row = triangle.Row.ToString(), Column = triangle.Column })); } else { return(BadRequest("Validation error")); } }
public IActionResult Get(Models.Rows row, int column) { var triangle = new Models.Triangle(row, column); if (triangle.IsValid) { return(Ok(triangle.Coordinates)); } else { return(BadRequest("Validation error")); } }
public abstract TriangleType HandleRequest(Models.Triangle triangle);
private void BtnCreateTriangle_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e) { var triangle = new Models.Triangle(this.drawingCanvas, Colors.Blue); this.DrawShape(triangle); }