using System.Collections.Generic;
public class Circle : IFigure
private const double pi = 3.14;
public double Radius{get {return _radius;}}
public Circle(double radius)
return pi * _radius * _radius;
public class Triangle : IFigure
public double Side {get { return _side;}}
public double Height {get {return _height;}}
public Triangle(double side, double height)
return 0.5 * _side * _height;
public static void Main()
public static void ExecuteTests()
var tests = new TestsFixture();
var failedTests = new List<string>();
foreach (var m in typeof(TestsFixture).GetMethods().Where(m => m.DeclaringType != typeof(object)))
if (Convert.ToBoolean(m.Invoke(tests, null)) != true)
Console.WriteLine("Failed Tests: \r\n\r\n{0}", string.Join("\r\n", failedTests));
Console.WriteLine("All tests passed!");
public class TestsFixture
public bool GetCircleAreaInt()
IFigure circle = new Circle(1);
return circle.GetArea().Equals(3.14);
public bool GetCircleAreaDouble()
IFigure circle = new Circle(1.5);
return Math.Abs(circle.GetArea() - 7.065) < 0.0000001;
public bool GetCTriangleAreaInt()
IFigure triangle = new Triangle(1, 2);
return triangle.GetArea().Equals(1);
public bool GetCTriangleAreaDouble()
IFigure triangle = new Triangle(1.5, 2.5);
return triangle.GetArea().Equals(1.875);