private List <Point> GeneratePoints(float[] coefficients, float a, float b)
        {
            var points = new List <Point>();

            for (float i = a; i <= b; i += 0.001f)
            {
                float x = ChebyshevApproximation.Squish(i, a, b);
                float y = ChebyshevApproximation.Evaluate(coefficients, x);
                points.Add(new Point(i, y));
            }

            return(points);
        }
        public void Approximate()
        {
            float a       = -2.0f;
            float b       = 2.0f;
            float step    = 0.5f;
            int   rank    = ChebyshevApproximation.CalculateRank(a, b, step);
            var   polynom = ChebyshevApproximation.Approximate(a, b, rank, myFunc);

            List <float> results = new List <float>();
            var          xApprox = GenerateX(a, b, 0.0001f);

            for (float i = a; i <= b; i += 0.0001f)
            {
                float x = ChebyshevApproximation.Squish(i, a, b);
                results.Add(ChebyshevApproximation.Evaluate(polynom, x));
            }
            Assert.That(polynom.Length == rank + 1);
        }