예제 #1
0
        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));
        }
예제 #2
0
        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));
        }