public void Derivative_CosSin_CorrectResultReturned()
        {
            Function     a = new Cos();
            Function     b = new Sin();
            var          c = new FunctionComposition(a, b);
            const double X = 1;
            var          expectedResult = Math.Sin(-Math.Cos(X));

            Assert.AreEqual(expectedResult, c.Derivative().ValueAtPoint(X));
        }
        public void BuiltFunction_LinearAndPolynomial_CorrectResultReturned()
        {
            const string function       = "fc l x+3(p x^3-5)";
            var          res            = new AddInStorageBuilder().BuildFunction(function);
            var          expectedResult = new FunctionComposition(new Linear(1, 3), new Polynomial(new List <double> {
                -5, 0, 0, 1
            }));

            Assert.AreEqual(expectedResult, res);
        }