public void Generate_BaseRandomServices_NoEqualEdges() { // ARRANGE var dice = new Dice(3245); var randomSource = new SectorGeneratorRandomSource(dice); var schemeService = CreateSchemeService(); var sector = CreateSector(); var map = CreateFakeMap(); var botPlayer = CreateBotPlayer(); var generator = CreateGenerator(randomSource, schemeService, botPlayer); // ACT generator.Generate(sector, map); // ASSERT foreach (var edge in map.Edges) { var sameEdge = map.Edges.Where(x => x != edge && ((x.Nodes[0] == edge.Nodes[0] && x.Nodes[1] == edge.Nodes[1]) || (x.Nodes[0] == edge.Nodes[1] && x.Nodes[1] == edge.Nodes[0]))); sameEdge.Should().BeEmpty($"Ребро с {edge.Nodes[0]} и {edge.Nodes[1]} уже есть."); } }
public void Generate_BaseRandomServices_NoExceptions() { // ARRANGE var dice = new Dice(123); var randomSource = new SectorGeneratorRandomSource(dice); var schemeService = CreateSchemeService(); var sector = CreateSector(); var map = CreateFakeMap(); var botPlayer = CreateBotPlayer(); var generator = CreateGenerator(randomSource, schemeService, botPlayer); // ACT Action act = () => { generator.Generate(sector, map); }; // ASSERT act.Should().NotThrow(); }
public void Generate_BaseRandomServices_NoOverlapNodes() { // ARRANGE var dice = new Dice(3245); var randomSource = new SectorGeneratorRandomSource(dice); var schemeService = CreateSchemeService(); var sector = CreateSector(); var map = CreateFakeMap(); var botPlayer = CreateBotPlayer(); var generator = CreateGenerator(randomSource, schemeService, botPlayer); // ACT generator.Generate(sector, map); // ASSERT var hexNodes = map.Nodes.Cast <HexNode>().ToArray(); foreach (var node in hexNodes) { var sameNode = hexNodes.Where(x => x != node && x.OffsetX == node.OffsetX && x.OffsetY == node.OffsetY); sameNode.Should().BeEmpty(); } }
public void RollConnectedRoomsTest() { // ARRANGE var maxNeighbor = 1; var neighborProbably = 100; var rollIndex = 0; var diceMock = new Mock <IDice>(); diceMock.Setup(x => x.Roll(It.IsAny <int>())).Returns <int>(n => { var result = 0; if (rollIndex == 0) { // это бросок на проверку вероятности. result = 1; } else if (rollIndex == 1) { // это бросок на выбор комнаты result = 1; } rollIndex++; return(result); }); var dice = diceMock.Object; var randomSource = new SectorGeneratorRandomSource(dice); var currentRoom = new Room(); var availableRooms = new[] { new Room() }; // ACT var factRooms = randomSource.RollConnectedRooms(currentRoom, maxNeighbor, neighborProbably, availableRooms); // ASSERT factRooms[0].Should().Be(availableRooms[0]); }