public void LevelGenerationTest() { const int height = 3; const int width = 6; var boardConfiguration = new[] { new[] { '#', '.', '#', '#', '#', '.' }, new[] { '#', '#', '.', '#', '#', '.' }, new[] { '#', '.', '#', '.', '$', '#' } }; var path = TestUtils.WriteToFile(boardConfiguration, "level_test.txt"); var level = new FileLevelFactory(path).CreateLevel(); Assert.AreEqual(height, level.Board.Height); Assert.AreEqual(width, level.Board.Width); for (var i = 0; i < height; i++) { for (var j = 0; j < width; j++) { switch (boardConfiguration[i][j]) { case '#': Assert.IsTrue(level.Board.IsWall(new Position(i, j))); break; case '.': Assert.IsTrue(level.Board.IsEmpty(new Position(i, j))); break; case '$': Assert.AreEqual(level.Player.Position, new Position(i, j)); break; } } } }
public void BoardConfigurationTest() { const int height = 3; const int width = 6; var boardConfiguration = new[] { new[] { '#', '.', '#', '#', '#', '.' }, new[] { '#', '#', '.', '#', '#', '.' }, new[] { '#', '.', '#', '.', '$', '#' } }; var path = TestUtils.WriteToFile(boardConfiguration, "level_test.txt"); var board = new FileLevelFactory(path).CreateLevel().Board; for (var i = 0; i < height; i++) { for (var j = 0; j < width; j++) { Assert.IsTrue(board.CheckOnBoard(new Position(i, j))); } } for (var i = 0; i < height; i++) { Assert.IsFalse(board.CheckOnBoard(new Position(i, -1))); Assert.IsFalse(board.CheckOnBoard(new Position(i, width))); } for (var j = 0; j < width; j++) { Assert.IsFalse(board.CheckOnBoard(new Position(-1, j))); Assert.IsFalse(board.CheckOnBoard(new Position(height, j))); } }
public void BoardConfigurationTest() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "../../../test_maps/level_snapshot.txt"); var level = new FileLevelFactory(path).CreateLevel(); var board = level.Board; for (var i = 0; i < height; i++) { for (var j = 0; j < width; j++) { Assert.IsTrue(board.CheckOnBoard(new Position(i, j))); } } for (var i = 0; i < height; i++) { Assert.IsFalse(board.CheckOnBoard(new Position(i, -1))); Assert.IsFalse(board.CheckOnBoard(new Position(i, width))); } for (var j = 0; j < width; j++) { Assert.IsFalse(board.CheckOnBoard(new Position(-1, j))); Assert.IsFalse(board.CheckOnBoard(new Position(height, j))); } }
public void LevelToSnapshotFileTest() { var stringSnapshot = "5 6\n" + "# . # # # . \n" + "# . . # . . \n" + "# . # . . # \n" + "# . # . . # \n" + "# # . . . # \n" + "@ 0 1 2 1 0\n" + "H 1 2\n" + "% 1 5 3 2 1\n" + "* 2 1 1 11 1\n" + "$ testplayer 2 4 4 5 6 2 A 0 0 F 1 1 1 H 2 2 \n" + "E 3 1\n" + "A 3 3\n" + "o 4 2 3 2 6\n" + "F 4 4\n"; var level = FileLevelFactory.FromString(stringSnapshot).CreateLevel(); level.CurrentPlayer = level.GetPlayer("testplayer"); var levelSnapshot = level.Save(); Assert.AreEqual( stringSnapshot.Split().Select(s => s.Trim()).Where(s => s.Length > 0).ToArray(), levelSnapshot.ToString().Split().Select(s => s.Trim()).Where(s => s.Length > 0).ToArray() ); }
public void LevelFromSnapshotFileTest() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "../../../test_maps/level_snapshot.txt"); var level = new FileLevelFactory(path).CreateLevel(); CheckLevelConfiguration(level); }
public void PlayerMoveOutOfBoardTest() { var level = new FileLevelFactory(path).CreateLevel(); var board = level.Board; var player = level.Player; var oldPlayerPosition = player.Position; level.Player.Move(1, 0, board); Assert.AreEqual(oldPlayerPosition, level.Player.Position); }
public void PlayerMoveToEmptyPositionTest() { var level = new FileLevelFactory(path).CreateLevel(); var board = level.Board; var player = level.Player; var oldPlayerPosition = player.Position; var newPlayerPosition = new Position(player.Position.Y, player.Position.X - 1); level.Player.Move(0, -1, board); Assert.IsTrue(board.IsEmpty(oldPlayerPosition)); Assert.AreEqual(newPlayerPosition, level.Player.Position); }
public void NetworkMobMoveTest() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../test_maps/mob_interaction_test_map.txt"); var factory = new FileLevelFactory(path); factory.SetMobFactory(new NetworkMobFactory()); factory.SetPlayerFactory(new NetworkPlayerFactory(new ExitGameInteractor())); var level = factory.CreateLevel(); level.CurrentPlayer = level.GetPlayer("testplayer"); var networkMob = level.Mobs[4]; var newPosition = networkMob.GetBehaviour().MakeMove(level, networkMob.Position); Assert.AreEqual(new Position(2, 5), newPosition); }
public void GraphConfigurationTest() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? string.Empty, "../../../test_maps/level_snapshot.txt"); var level = new FileLevelFactory(path).CreateLevel(); var graph = level.Graph; var playerPosition = level.GetPlayer("testplayer").Position; Assert.AreEqual(4, level.Mobs.Count); var modPosition = level.GetMob(level.Mobs[0].Id.ToString()).Position; Assert.AreEqual(new Position(2, 4), graph.Farthest(playerPosition, modPosition)); var inventoryPosition = new Position(4, 4); Assert.AreEqual(new Position(3, 4), graph.Nearest(playerPosition, inventoryPosition)); }
public void LevelSnapshotStringTest() { var stringSnapshot = "5 6\n" + "# . # # # .\n" + "# . . # . .\n" + "# . # . . #\n" + "# . # . . #\n" + "# # . . . #\n" + "@ 0 1 2 1 0\n" + "H 1 2\n" + "% 1 5 3 2 1\n" + "* 2 1 1 11 1\n" + "$ testplayer 2 4 4 5 6 2 A 0 0 F 1 1 1 H 2 2\n" + "E 3 1\n" + "A 3 3\n" + "o 4 2 3 2 6\n" + "F 4 4"; var levelFromString = FileLevelFactory.FromString(stringSnapshot).CreateLevel(); CheckLevelConfiguration(levelFromString); }