public void SerializeMapRandomTest() { var rnd = new Random(); for (var i = 1; i <= 100; i++) { var name = "test" + i; var blocks = Enumerable .Repeat(0, rnd.Next(10, 1000)) .Select(_ => RandomRectangle(rnd)); var timeAnomalies = Enumerable .Repeat(0, rnd.Next(10, 1000)) .Select(_ => RandomRectangle(rnd)); var stages = Enumerable .Repeat(0, rnd.Next(1, 20)) .Select(_ => RandomStage(rnd)); var map = new Map(name, blocks, timeAnomalies, stages); var code = MapConstructorSerializer.SerializeMap(map); var restoredMap = MapConstructorSerializer.DeserializeMap(code); CollectionAssert.AreEqual(map.Blocks, restoredMap.Blocks, $"Ошибка в тесте {name} (блоки)"); CollectionAssert.AreEqual(map.TimeAnomalies, restoredMap.TimeAnomalies, $"Ошибка в тесте {name} (аномалии)"); CollectionAssert.AreEqual(map.Stages.Select(s => s.Spawn), restoredMap.Stages.Select(s => s.Spawn), $"Ошибка в тесте {name} (спавны)"); CollectionAssert.AreEqual(map.Stages.Select(s => s.Target), restoredMap.Stages.Select(s => s.Target), $"Ошибка в тесте {name} (порталы)"); } }
public void SerializeRectangleTest(int x, int y, int width, int height) { var rect = new Rectangle(x, y, width, height); var code = MapConstructorSerializer.SerializeRectangle(rect); Assert.IsTrue(code is >= 0 and <= 214358880); var restoredRect = MapConstructorSerializer.DeserializeRectangle(code); Assert.AreEqual(rect, restoredRect); }
public void SerializeStageTest(int sx, int sy, int tx, int ty, int tWidth, int tHeight) { var stage = new Stage(new Point(sx, sy), new Rectangle(tx, ty, tWidth, tHeight)); var(code1, code2) = MapConstructorSerializer.SerializeStage(stage); Assert.IsTrue(code1 is >= 0 and <= 14640); Assert.IsTrue(code2 is >= 0 and <= 214358880); var restoredStage = MapConstructorSerializer.DeserializeStage(code1, code2); Assert.AreEqual(stage.Spawn, restoredStage.Spawn); Assert.AreEqual(stage.Target, restoredStage.Target); }