public void TranslateByAngle()
        {
            Span <Number>            buffer     = new Number[3];
            HypersphericalCoordinate coordinate = new HypersphericalCoordinate(2, new Number[] { 2, 1, -1 });

            coordinate.TranslateSelf(HypersphericalAngleVector.CreateOrthogonalDirection(1, 0.5, in buffer));
            coordinate.AssertIsEqualTo(new HypersphericalCoordinate(2, new Number[] { 2, 1.5, -1 }));
        }
        public void GetIdentityVector(ushort dimensionsCount)
        {
            Span <Number> vector = stackalloc Number[dimensionsCount];

            CartesianCoordinate.GetIdentityVector(in vector);

            vector.SumDefensive((in Number v) => v * v).AssertIsEqualTo(1d);

            Span <Number> h1 = stackalloc Number[dimensionsCount - 1];
            Span <Number> v2 = stackalloc Number[dimensionsCount];

            HypersphericalAngleVector.GetIdentityVector(h1).GetCartesianAxisViewsRatios(in v2);

            v2.AssertSequenceEqualsTo(vector);
        }
        public void Constructor_Default()
        {
            HypersphericalAngleVector v = default;

            v.AssertIsEqualTo(default);