public void TestStaticFn_Reflect_i ()
{
var a = new Vector2(20, -5);
var b = new Vector2(1, -1); Vector2.Normalise(ref b, out b);
var c = new Vector2(2, -1); Vector2.Normalise(ref c, out c);
var d = Vector2.Zero;
var e = new Vector2(1, 0);
var ex1 = new Vector2(-5, 20);
var ex2 = new Vector2(-16, 13);
var ex3 = d;
var tests = new Tuple<Vector2, Vector2, Vector2>[]
{
//incident -> normal -> expected
new Tuple<Vector2, Vector2, Vector2> (a, b, ex1),
new Tuple<Vector2, Vector2, Vector2> (a, c, ex2),
new Tuple<Vector2, Vector2, Vector2> (d, e, ex3),
};
foreach(var test in tests)
{
Vector2 incident = test.Item1;
Vector2 normal = test.Item2;
Vector2 expected = test.Item3;
Vector2 result;
Vector2.Reflect(ref incident, ref normal, out result);
AssertEqualWithinReason(result, expected);
}
}