public void TerrainCalculation_StressPositive()
        {
            var currentOriginCell = 0;
            var currentTileOffset = 0;
            var currentNodeOffset = 0;
            var currentTile       = 0;
            var currentNode       = 0;

            for (var i = 0.9f; i < 50000; i += 1)
            {
                var calc = new TerrainCalculation(i, i - 0.5f);

                Assert.IsTrue(calc.ScaleFactor == 1);
                Assert.IsTrue(calc.Position.X == i);
                Assert.IsTrue(calc.Position.Z == i - 0.5f);

                Assert.IsTrue(calc.OriginCell.X == currentOriginCell);
                Assert.IsTrue(calc.OriginCell.Z == currentOriginCell);

                Assert.IsTrue(calc.Tile.X == currentTile);
                Assert.IsTrue(calc.Tile.Z == currentTile);

                Assert.IsTrue(calc.TileCell.X == currentTileOffset);
                Assert.IsTrue(calc.TileCell.Z == currentTileOffset);

                Assert.IsTrue(calc.Node.X == currentNode);
                Assert.IsTrue(calc.Node.Z == currentNode);

                Assert.IsTrue(calc.NodeCell.X == currentNodeOffset);
                Assert.IsTrue(calc.NodeCell.Z == currentNodeOffset);

                currentOriginCell++;
                currentTileOffset++;
                currentNodeOffset++;

                if (currentTileOffset >= 32)
                {
                    currentTileOffset = 0;
                    currentNodeOffset = 0;
                    currentNode       = 0;
                    currentTile++;
                }

                if (currentNodeOffset >= 8)
                {
                    currentNodeOffset = 0;
                    currentNode++;
                }
            }
        }
        public void TerrainCalculation_StressNegative()
        {
            var currentOriginCell = -1;
            var currentTileOffset = 31;
            var currentNodeOffset = 7;
            var currentTile       = -1;
            var currentNode       = 3;

            for (var i = -0.1f; i < -50000; i -= 1)
            {
                var calc = new TerrainCalculation(i, i - 0.8f);

                Assert.IsTrue(calc.ScaleFactor == 1);
                Assert.IsTrue(calc.Position.X == i);

                Assert.IsTrue(calc.OriginCell.X == currentOriginCell);
                Assert.IsTrue(calc.OriginCell.Z == currentOriginCell);

                Assert.IsTrue(calc.Tile.X == currentTile);
                Assert.IsTrue(calc.Tile.Z == currentTile);

                Assert.IsTrue(calc.TileCell.X == currentTileOffset);
                Assert.IsTrue(calc.TileCell.Z == currentTileOffset);

                Assert.IsTrue(calc.Node.X == currentNode);
                Assert.IsTrue(calc.Node.Z == currentNode);

                Assert.IsTrue(calc.NodeCell.X == currentNodeOffset);
                Assert.IsTrue(calc.NodeCell.Z == currentNodeOffset);

                currentOriginCell--;
                currentTileOffset--;
                currentNodeOffset--;

                if (currentTileOffset < 0)
                {
                    currentTileOffset = 31;
                    currentNodeOffset = 7;
                    currentNode       = 3;
                    currentTile--;
                }

                if (currentNodeOffset < 0)
                {
                    currentNodeOffset = 7;
                    currentNode--;
                }
            }
        }
        public void TerrainCalculation_Reference()
        {
            var calcA = new TerrainCalculation(-9.2F, -32.5F);

            Assert.IsTrue(calcA.ScaleFactor == 1f);

            Assert.IsTrue(calcA.Tile.X == -1);
            Assert.IsTrue(calcA.TileCell.X == 22);
            Assert.IsTrue(calcA.Node.X == 2);
            Assert.IsTrue(calcA.NodeCell.X == 6);

            Assert.IsTrue(calcA.Tile.Z == -2);
            Assert.IsTrue(calcA.TileCell.Z == 31);
            Assert.IsTrue(calcA.Node.Z == 3);
            Assert.IsTrue(calcA.NodeCell.Z == 7);

            var calcB = new TerrainCalculation(1002.1122F, -0.2F);

            Assert.IsTrue(calcB.ScaleFactor == 1f);

            Assert.IsTrue(calcB.Tile.X == 31);
            Assert.IsTrue(calcB.TileCell.X == 10);
            Assert.IsTrue(calcB.Node.X == 1);
            Assert.IsTrue(calcB.NodeCell.X == 2);

            Assert.IsTrue(calcB.Tile.Z == -1);
            Assert.IsTrue(calcB.TileCell.Z == 31);
            Assert.IsTrue(calcB.Node.Z == 3);
            Assert.IsTrue(calcB.NodeCell.Z == 7);

            var calcC = new TerrainCalculation(2.001F, 65525F, 0.5F);

            Assert.IsTrue(calcC.ScaleFactor == 0.5f);

            Assert.IsTrue(calcC.Tile.X == 0);
            Assert.IsTrue(calcC.TileCell.X == 4);
            Assert.IsTrue(calcC.Node.X == 0);
            Assert.IsTrue(calcC.NodeCell.X == 4);

            Assert.IsTrue(calcC.Tile.Z == 4095);
            Assert.IsTrue(calcC.TileCell.Z == 10);
            Assert.IsTrue(calcC.Node.Z == 1);
            Assert.IsTrue(calcC.NodeCell.Z == 2);
        }