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]); }
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]); }