public TriangleCalculator(CalcAreaType calcType, double a_Side = 0,
                           double b_Side = 0,
                           double c_Side = 0,
                           double angle  = 0,
                           double heigth = 0)
 {
     CalcType = calcType;
     Shape    = new Triangle(a_Side, b_Side, c_Side, angle, heigth);
 }
        public void GetArgumentExceptionFromAllSidesZero(CalcAreaType calcType,
                                                         double a_Side,
                                                         double b_Side,
                                                         double c_Side)
        {
            calculator = new TriangleCalculator(calcType, a_Side: a_Side,
                                                b_Side: b_Side,
                                                c_Side: c_Side);

            Assert.Throws <ArgumentException>(() => calculator.Area());
        }
        public void GetArgumentExceptionFromWrongAngle(CalcAreaType calcType,
                                                       double a_Side,
                                                       double b_Side,
                                                       double angle)
        {
            calculator = new TriangleCalculator(calcType, a_Side: a_Side,
                                                b_Side: b_Side,
                                                angle: angle);

            Assert.Throws <ArgumentException>(() => calculator.Area());
        }
        public void GetAreaFromTreeSides(CalcAreaType calcType,
                                         double a_Side,
                                         double b_Side,
                                         double c_Side,
                                         double result)
        {
            calculator = new TriangleCalculator(calcType, a_Side: a_Side,
                                                b_Side: b_Side,
                                                c_Side: c_Side);

            Assert.AreEqual(result, calculator.Area());
        }
        public void GetAreaFromTwoSidesAndAngle(CalcAreaType calcType,
                                                double first_Side,
                                                double second_Side,
                                                double angle,
                                                double result)
        {
            calculator = new TriangleCalculator(calcType, a_Side: first_Side,
                                                c_Side: second_Side,
                                                angle: angle);

            AssertResult(result);

            calculator = new TriangleCalculator(calcType, b_Side: first_Side,
                                                c_Side: second_Side,
                                                angle: angle);

            AssertResult(result);

            calculator = new TriangleCalculator(calcType, a_Side: first_Side,
                                                b_Side: second_Side,
                                                angle: angle);

            AssertResult(result);
        }