public Dictionary <RoomTemplateInstance, double> GetRoomTemplatesDistribution <TNode>(IMapDescription <TNode> mapDescription, List <MapLayout <TNode> > layouts, TNode node) { var roomDescription = mapDescription.GetRoomDescription(node); var availableRoomTemplateInstances = roomDescription.RoomTemplates.SelectMany(x => configurationSpacesGenerator.GetRoomTemplateInstances(x)).ToList(); var data = layouts .Select(x => x.Rooms.Single(y => y.Node.Equals(node))) .Select(x => x.RoomTemplateInstance) .ToList(); return(GetProbabilityDistribution(data, availableRoomTemplateInstances)); }
public void GetRoomTemplateInstances_SquareIdentity_ReturnsOneInstance() { var roomShape = PolygonGrid2D.GetSquare(10); var doorsMode = new SimpleDoorMode(1, 0); var transformations = new List <TransformationGrid2D>() { TransformationGrid2D.Identity }; var roomTemplate = new RoomTemplate(roomShape, doorsMode, transformations); var instances = generator.GetRoomTemplateInstances(roomTemplate); Assert.That(instances.Count, Is.EqualTo(1)); Assert.That(instances[0].RoomTemplate, Is.EqualTo(roomTemplate)); Assert.That(instances[0].RoomShape, Is.EqualTo(roomShape)); Assert.That(instances[0].Transformations, Is.EquivalentTo(transformations)); }