public void TestBestDir() { const int mapSize = 32; var state = new GameState(mapSize, mapSize, int.MaxValue, 100, 25, 5, 1); var baseLoc = new Location(5, 8); { var loc2 = new Location(7, 9); Assert.AreEqual(1, state.getHorizontalDelta(baseLoc, loc2)); Assert.AreEqual(2, state.getVerticalDelta(baseLoc, loc2)); Assert.AreEqual(-1, state.getHorizontalDelta(loc2, baseLoc)); Assert.AreEqual(-2, state.getVerticalDelta(loc2, baseLoc)); } { var loc3 = new Location(1, 2); var loc4 = new Location(mapSize - 1, mapSize - 3); Assert.AreEqual(5, state.getHorizontalDelta(loc3, loc4)); Assert.AreEqual(2, state.getVerticalDelta(loc3, loc4)); Assert.AreEqual(-5, state.getHorizontalDelta(loc4, loc3)); Assert.AreEqual(-2, state.getVerticalDelta(loc4, loc3)); } foreach (var dir in Ants.Ants.Aim.Keys) { var loc = state.GetDestination(baseLoc, dir); Assert.AreEqual(dir, state.GetBestDirection(baseLoc, loc)); } }