public void ComputeAngularMagnitude() { var v1 = new Vector4fd(1, 0, 0, 0); var v2 = new Vector4fd(0, 1, 0, 0); v1.AngularMagnitude(v2).Should().BeApproximately(Math.PI / 2, double.Epsilon); v2.AngularMagnitude(v1).Should().BeApproximately(Math.PI / 2, double.Epsilon); // unsigned angle }
public void HaveCorrectValues() { var v = new Vector4fd(1, 2, 3, 4); v.X.Should().Be(1); v.Y.Should().Be(2); v.Z.Should().Be(3); v.W.Should().Be(4); }
public void ConvertFromValueTupleOfFloat() { Vector4fd v = (1f, 0f, -1f, 2f); v.X.Should().Be(1); v.Y.Should().Be(0); v.Z.Should().Be(-1); v.W.Should().Be(2); }
public void ConvertFromValueTupleOfDouble() { Vector4fd v = (1, 0, -1, 2); v.X.Should().Be(1); v.Y.Should().Be(0); v.Z.Should().Be(-1); v.W.Should().Be(2); }
public void ConverToSpan() { Vector4fd v = (1, 2, 3, 4); var span = v.AsSpan(); span[0].Should().Be(1); span[1].Should().Be(2); span[2].Should().Be(3); span[3].Should().Be(4); }
public void ComputeUnit() { var normalized = new Vector4fd(0.1, 0, 0, 0).Unit(); normalized.X .Should() .BeApproximately(1, double.Epsilon); normalized.Y .Should() .Be(0); normalized.Z .Should() .Be(0); normalized.W .Should() .Be(0); }