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);