public RandomPopulationSettings MapFrom(PopulationSettings batchPopulationSettings)
        {
            var originData = originDataFrom(batchPopulationSettings);

            var individual         = _individualFactory.CreateStandardFor(originData);
            var populationSettings = _individualToPopulationSettingsMapper.MapFrom(individual);

            populationSettings.NumberOfIndividuals = batchPopulationSettings.NumberOfIndividuals;

            setRange(populationSettings, CoreConstants.Parameter.AGE, batchPopulationSettings.MinAge, batchPopulationSettings.MaxAge);
            setRange(populationSettings, CoreConstants.Parameter.MEAN_HEIGHT, batchPopulationSettings.MinHeight, batchPopulationSettings.MaxHeight);
            setRange(populationSettings, CoreConstants.Parameter.MEAN_WEIGHT, batchPopulationSettings.MinWeight, batchPopulationSettings.MaxWeight);
            setRange(populationSettings, CoreConstants.Parameter.BMI, batchPopulationSettings.MinBMI, batchPopulationSettings.MaxBMI);

            if (populationSettings.ContainsParameterRangeFor(CoreConstants.Parameter.GESTATIONAL_AGE))
            {
                setRange(populationSettings, CoreConstants.Parameter.GESTATIONAL_AGE, batchPopulationSettings.MinGestationalAge, batchPopulationSettings.MaxGestationalAge);
            }

            //in case of multiple gender, adjust the ration according to the feamales proportion
            if (individual.AvailableGenders().Count() > 1)
            {
                populationSettings.GenderRatio(_genderRepository.Female).Ratio = batchPopulationSettings.ProportionOfFemales;
                populationSettings.GenderRatio(_genderRepository.Male).Ratio   = 100 - batchPopulationSettings.ProportionOfFemales;
            }

            return(populationSettings);
        }
 public Individual DefaultIndividualFor(SpeciesPopulation speciesPopulation)
 {
     if (!_indvidualCacheProSpecies.Contains(speciesPopulation))
     {
         var individualDTO = _individualDefaultValueRetriever.DefaultSettingFor(speciesPopulation);
         _indvidualCacheProSpecies[speciesPopulation] = _individualFactory.CreateStandardFor(_individualSettingsMapper.MapFrom(individualDTO));
     }
     return(_indvidualCacheProSpecies[speciesPopulation]);
 }
 public Individual DefaultIndividualFor(SpeciesPopulation speciesPopulation)
 {
     if (!_indvidualCacheProSpecies.Contains(speciesPopulation))
     {
         var species       = _speciesRepository.FindByName(speciesPopulation.Species);
         var individualDTO = _individualDefaultValueRetriever.DefaultSettingForSpecies(species);
         individualDTO.SpeciesPopulation = speciesPopulation;
         _individualDefaultValueRetriever.RetrieveDefaultValueFor(individualDTO);
         _indvidualCacheProSpecies[speciesPopulation] = _individualFactory.CreateStandardFor(_individualSettingsMapper.MapFrom(individualDTO));
     }
     return(_indvidualCacheProSpecies[speciesPopulation]);
 }
        public Individual DefaultIndividualFor(SpeciesPopulation speciesPopulation)
        {
            if (!_individualCacheProSpecies.Contains(speciesPopulation))
            {
                var originDataSnapshot = new OriginData
                {
                    Species    = speciesPopulation.Species,
                    Population = speciesPopulation.Name,
                    Gender     = DefaultGenderFor(speciesPopulation).Name
                };
                var originData = _originDataMapper.MapToModel(originDataSnapshot).Result;
                _individualCacheProSpecies[speciesPopulation] = _individualFactory.CreateStandardFor(originData);
            }

            return(_individualCacheProSpecies[speciesPopulation]);
        }
Example #5
0
        public Individual DefaultIndividualFor(SpeciesPopulation speciesPopulation)
        {
            if (!_individualCacheProSpecies.Contains(speciesPopulation))
            {
                var originDataSnapshot = new OriginData
                {
                    Species    = speciesPopulation.Species,
                    Population = speciesPopulation.Name,
                    Gender     = DefaultGenderFor(speciesPopulation).Name
                };

                //We do not need to pass any valid snapshot context in this case.
                var originData = _originDataMapper.MapToModel(originDataSnapshot, new SnapshotContext()).Result;
                _individualCacheProSpecies[speciesPopulation] = _individualFactory.CreateStandardFor(originData);
            }

            return(_individualCacheProSpecies[speciesPopulation]);
        }