public void TestDistanceVec2() { var outputs = Eval(() => Distance(vec2, vec2), V2fA, V2fB); var expected = V2fA.Zip(V2fB, (x, y) => (float)CpuLength(x.X - y.X, x.Y - y.Y)); foreach (var x in outputs.Zip(expected, (x, y) => new Tuple <float, float>(x.X, y))) { Assert.That(x.Item1, Is.EqualTo(x.Item2).Within(MaxErr).Ulps); } }
public void TestDotVec2() { var outputs = Eval(() => Dot(vec2, vec2), V2fA, V2fB); var expected = V2fA.Zip(V2fB, (x, y) => x.X * y.X + x.Y * y.Y); foreach (var x in outputs.Zip(expected, (x, y) => new Tuple <float, float>(x.X, y))) { Assert.That(x.Item1, Is.EqualTo(x.Item2).Within(MaxErr).Ulps); } }
public void TestPowVec2() { var outputs = Eval(() => Pow(vec2, vec2), V2fA, V2fB); var expected = V2fA.Zip(V2fB, (a, b) => new Tuple <float, float>((float)Math.Pow(a.X, b.X), (float)Math.Pow(a.Y, b.Y))); foreach (var x in outputs.Zip(expected, (x, y) => new Tuple <Vector4, float, float>(x, y.Item1, y.Item2))) { Assert.That(x.Item1.X, Is.EqualTo(x.Item2).Within(MaxErr).Ulps); Assert.That(x.Item1.Y, Is.EqualTo(x.Item3).Within(MaxErr).Ulps); } }