예제 #1
0
        public void SolutionEdges()
        {
            for (int x = 2; x < 16; x++)
            {
                for (int y = 2; y < 16; y++)
                {
                    SolutionParameters parm = new SolutionParameters(x, y);
                    Vector2            prev = new Vector2(-1, 0);

                    for (int i = -2 * (x + y) + 4; i < 2 * (x + y) - 4; i++)
                    {
                        var newPos = parm.IndexToBound(i);
                        if (i >= 0)
                        {
                            Assert.AreEqual(i, parm.BoundToIndex(newPos), string.Format("{0}, {1}, {2}", x, y, i));
                        }
                        Assert.AreEqual(1, (prev - newPos).DistanceSquared(), string.Format("{0}, {1}, {2}", x, y, i));
                        prev = newPos;
                    }
                }
            }
        }