public void RayEndPoints()
        {
            var min = Vector.Create(5, 5);
            var max = Vector.Create(7, 7);

            Func <IEnumerable <Vector>, Vector[]> prepare =
                vectors => vectors
                .OrderBy(v => v.X)
                .ThenBy(v => v.Y)
                .ToArray();

            var expected = prepare(
                new[]
            {
                Vector.Create(5, 5),
                Vector.Create(5, 6),
                Vector.Create(5, 7),
                Vector.Create(7, 5),
                Vector.Create(7, 6),
                Vector.Create(7, 7),
                Vector.Create(6, 5),
                Vector.Create(6, 7)
            });

            var result = prepare(LineOfSight.RayEndPoints(min, max));

            CollectionAssert.AreEqual(expected, result);
        }