Beispiel #1
0
        public void FindRouteTest1()
        {
            using (var world = new OpenTTD.Testing.TestWorld(20, 20))
            {
                var path = RailBuilder.FindPath(AIMap.GetTileIndex(10, 10), AIMap.GetTileIndex(15, 15), AIMap.GetTileIndex(9, 10));
                foreach (var item in path)
                {
                    Debug.WriteLine(item.Tile);
                }

                Assert.AreEqual(12, path.Count);
                Assert.AreEqual(AIMap.GetTileIndex(15, 15), path[0].Tile);
                Assert.AreEqual(AIMap.GetTileIndex(14, 14), path[2].Tile);
                Assert.AreEqual(AIMap.GetTileIndex(13, 13), path[4].Tile);
                Assert.AreEqual(AIMap.GetTileIndex(12, 12), path[6].Tile);
                Assert.AreEqual(AIMap.GetTileIndex(11, 11), path[8].Tile);
                Assert.AreEqual(AIMap.GetTileIndex(10, 10), path[10].Tile);
                Assert.AreEqual(AIMap.GetTileIndex(9, 10), path[11].Tile);
            }
        }
Beispiel #2
0
        public void CalculateAngleTest1()
        {
            using (var world = new OpenTTD.Testing.TestWorld(20, 20))
            {
                /*   /\
                 *  /\/
                 * /\/
                 * \/    */
                var currentTile = AIMap.GetTileIndex(10, 10);
                var cameFrom    = new PathInfo(
                    AIMap.GetTileIndex(9, 10),
                    1,
                    1,
                    BuildType.Basic,
                    new PathInfo(
                        AIMap.GetTileIndex(8, 1),
                        1,
                        1,
                        BuildType.Basic,
                        null
                        )
                    );

                double actual = RailBuilder.CalculateAngle(currentTile, cameFrom.Tile, cameFrom.Previous);
                Assert.AreEqual(0.0, actual);

                /*  /\
                 * /\/
                 * \/\
                 * /\/
                 * \/    */
                cameFrom = new PathInfo(
                    AIMap.GetTileIndex(9, 10),
                    1,
                    1,
                    BuildType.Basic,
                    new PathInfo(
                        AIMap.GetTileIndex(9, 9),
                        1,
                        1,
                        BuildType.Basic,
                        new PathInfo(
                            AIMap.GetTileIndex(8, 9),
                            1,
                            1,
                            BuildType.Basic,
                            null
                            )
                        )
                    );

                actual = RailBuilder.CalculateAngle(currentTile, cameFrom.Tile, cameFrom.Previous);
                Assert.AreEqual(0.0, actual);

                /*   /\
                 *  /\/
                 *  \/\
                 *  /\/
                 * /\/
                 * \/    */
                cameFrom = new PathInfo(
                    AIMap.GetTileIndex(9, 10),
                    1,
                    1,
                    BuildType.Basic,
                    new PathInfo(
                        AIMap.GetTileIndex(8, 10),
                        1,
                        1,
                        BuildType.Basic,
                        new PathInfo(
                            AIMap.GetTileIndex(8, 9),
                            1,
                            1,
                            BuildType.Basic,
                            new PathInfo(
                                AIMap.GetTileIndex(7, 9),
                                1,
                                1,
                                BuildType.Basic,
                                null
                                )
                            )
                        )
                    );

                actual = RailBuilder.CalculateAngle(currentTile, cameFrom.Tile, cameFrom.Previous);
                Assert.AreEqual(1.0, actual);

                /*  /\
                 * /\/\
                 * \/\/
                 *  \/    */
                cameFrom = new PathInfo(
                    AIMap.GetTileIndex(9, 10),
                    1,
                    1,
                    BuildType.Basic,
                    new PathInfo(
                        AIMap.GetTileIndex(9, 9),
                        1,
                        1,
                        BuildType.Basic,
                        new PathInfo(
                            AIMap.GetTileIndex(10, 9),
                            1,
                            1,
                            BuildType.Basic,
                            null
                            )
                        )
                    );

                actual = RailBuilder.CalculateAngle(currentTile, cameFrom.Tile, cameFrom.Previous);
                Assert.AreEqual(100.0, actual);
            }
        }