public void BernsteinShouldWork()
        {
            Func <double, double> b01 = u => Math.Bertstein(0, 1, u);

            b01(0).Should().Be(1);
            b01(1).Should().Be(0);
        }
        public void BezierShouldWork()
        {
            var p0 = new Vector3(0, 0, 0);
            var p1 = new Vector3(1, 1, 0);
            var p2 = new Vector3(2, 0, 0);

            var points = new List <Vector3> {
                p0, p1, p2
            };

            Math.Bezier(points)(0).Should().Be(p0);
            Math.Bezier(points)(1).Should().Be(p2);
            Math.Bezier(points)(0.5).X.Should().BeGreaterThan(0.9f).And.BeLessThan(1.1f);
            Math.Bezier(points)(0.5).Y.Should().BeGreaterThan(0.4f).And.BeLessThan(0.6f);
        }