public void SimpleTriangleTest() { // Arrange var triangle = new ThreeLinesTriangle(2.5, 3, 4); var triangleCalculator = new TriangleAreaCalculator(); // Act var calculatedArea = triangleCalculator.TryCalculateArea(triangle); // Assert Assert.AreEqual(3.7453095666446585, calculatedArea, DoubleEquality.Epsilon); }
public void LineTriangleTest() { // Arrange var triangle = new ThreeLinesTriangle(6, 2.5, 3.5); var triangleCalculator = new TriangleAreaCalculator(); // Act var calculatedArea = triangleCalculator.TryCalculateArea(triangle); // Assert Assert.AreEqual(0, calculatedArea, DoubleEquality.Epsilon); }
public void SimpleRightAngleTriangleTest() { // Arrange var triangle = new ThreeLinesTriangle(4, 5, 3); var triangleCalculator = new RightAngleTriangleCalculator(); // Act var calculatedArea = triangleCalculator.TryCalculateArea(triangle); // Assert Assert.AreEqual(6, calculatedArea, DoubleEquality.Epsilon); }
public void BigEpsilonTest() { // Arrange var triangle = new ThreeLinesTriangle(1, 2, 2.2); var triangleCalculator = new RightAngleTriangleCalculator(0.5); // Act var calculatedArea = triangleCalculator.TryCalculateArea(triangle); // Assert Assert.NotNull(calculatedArea); }
public void NotRightAngleCalculatorTest(double a, double b, double c) { // Arrange var triangle = new ThreeLinesTriangle(a, b, c); var triangleCalculator = new RightAngleTriangleCalculator(); // Act var calculatedArea = triangleCalculator.TryCalculateArea(triangle); // Assert Assert.Null(calculatedArea); }
public void IntegrationTest() { // Arrange var circle = new Circle(1); var customFigure = new TestFigure(); var innerComposite = new CompositeFigure(new FigureBase[] { circle, customFigure }); var emptyComposite = new CompositeFigure(Array.Empty <FigureBase>()); var triangle = new ThreeLinesTriangle(2.5, 3, 4); var composite = new CompositeFigure(new FigureBase[] { innerComposite, emptyComposite, triangle }); var circle2 = new Circle(2); var customCalculatorNotUsed = new Mock <ITryAreaCalculator>(MockBehavior.Default); customCalculatorNotUsed.Setup(it => it.TryCalculateArea(customFigure)) .Throws(new AssertionException("Should not be called")); var customCalculator = new Mock <ITryAreaCalculatorWithPriority>(MockBehavior.Default); customCalculator.Setup(it => it.TryCalculateArea(customFigure)).Returns(15.2); customCalculator.Setup(it => it.GetPriority(customFigure)).Returns(100); var areaCalculator = new AreaCalculator(); areaCalculator.Calculators.Add(new CompositeAreaCalculator(areaCalculator)); areaCalculator.Calculators.Add(new TriangleAreaCalculator()); areaCalculator.Calculators.Add(new RightAngleTriangleCalculator()); areaCalculator.Calculators.Add(new CircleAreaCalculator()); areaCalculator.Calculators.Add(customCalculatorNotUsed.Object); areaCalculator.Calculators.Add(customCalculator.Object); // Act var compositeArea = areaCalculator.CalculateArea(composite); var triangleArea = areaCalculator.CalculateArea(triangle); var circle2Area = areaCalculator.CalculateArea(circle2); // Assert const double ExpectedTriangleArea = 3.7453095666446585; var expectedCompositeArea = Math.PI + 15.2 + ExpectedTriangleArea; Assert.AreEqual(expectedCompositeArea, compositeArea, DoubleEquality.Epsilon); Assert.AreEqual(ExpectedTriangleArea, triangleArea, DoubleEquality.Epsilon); Assert.AreEqual(4 * Math.PI, circle2Area, DoubleEquality.Epsilon); }