public void TestAscent() { GameState gameState = TestGameState(7, 5); DistanceField <GameState.Tile> dut = new DistanceField <GameState.Tile>(gameState, gameState.map, tile => tile.isFood); const Tile f = Tile.Food; const Tile _ = Tile.Land; const Tile w = Tile.Water; Tile[,] map = new Tile[, ] { { _, w, _, w, _, w, _ }, { _, w, _, w, _, w, _ }, { _, w, f, w, _, _, _ }, { _, _, w, w, w, w, _ }, { _, w, _, _, _, w, _ } }; gameState.Set(map); dut.Propagate(); { Vector2i r = dut.GetAscent(6, 4).First(); Assert.AreEqual(1, r.x); Assert.AreEqual(0, r.y); } { Vector2i r = dut.GetAscent(5, 2).First(); Assert.AreEqual(1, r.x); Assert.AreEqual(0, r.y); } { Vector2i r = dut.GetAscent(4, 2).First(); Assert.AreEqual(1, r.x); Assert.AreEqual(0, r.y); } { Vector2i r = dut.GetAscent(2, 1).First(); Assert.AreEqual(0, r.x); Assert.AreEqual(-1, r.y); } }
public void TestAscent() { DistanceField dut = new DistanceField(7, 5, Tile.Food); const Tile f = Tile.Food; const Tile _ = Tile.Land; const Tile w = Tile.Water; Tile[,] map = new Tile[, ] { { _, w, _, w, _, w, _ }, { _, w, _, w, _, w, _ }, { _, w, f, w, _, _, _ }, { _, _, w, w, w, w, _ }, { _, w, _, _, _, w, _ } }; dut.Propagate(map, 20); { Vector2i r = dut.GetAscent(6, 4).First(); Assert.AreEqual(1, r.x); Assert.AreEqual(0, r.y); } { Vector2i r = dut.GetAscent(5, 2).First(); Assert.AreEqual(1, r.x); Assert.AreEqual(0, r.y); } { Vector2i r = dut.GetAscent(4, 2).First(); Assert.AreEqual(1, r.x); Assert.AreEqual(0, r.y); } { Vector2i r = dut.GetAscent(2, 1).First(); Assert.AreEqual(0, r.x); Assert.AreEqual(-1, r.y); } }