Пример #1
0
        protected override async Task Context()
        {
            await base.Context();

            _project       = new PKSimProject();
            _newIndividual = new Individual
            {
                OriginData = new OriginData()
            };

            _newAgeRange = new ParameterRange {
                ParameterName = CoreConstants.Parameters.AGE
            };
            _newWeightRange = new ParameterRange {
                ParameterName = CoreConstants.Parameters.MEAN_WEIGHT
            };

            _snapshot = await sut.MapToSnapshot(_randomPopulationSettings);

            _snapshot.ProportionOfFemales = _proportionOfFemale;

            A.CallTo(() => _parameterRangeMapper.MapToModel(_snapshot.Age, A <ParameterRangeSnapshotContext> .That.Matches(x => x.ParameterRange == _newAgeRange))).Returns(_newAgeRange);
            A.CallTo(() => _parameterRangeMapper.MapToModel(_snapshot.Weight, A <ParameterRangeSnapshotContext> .That.Matches(x => x.ParameterRange == _newWeightRange))).Returns(_newWeightRange);
            A.CallTo(() => _individualMapper.MapToModel(_snapshotIndividual, _snapshotContext)).Returns(_newIndividual);

            _newDiseaseStateParameterRange = new ConstrainedParameterRange {
                ParameterName = _diseaseStateParameter.Name
            };

            _mappedSettings = new RandomPopulationSettings {
                BaseIndividual = _newIndividual
            };
            _mappedSettings.AddParameterRange(_newDiseaseStateParameterRange);
            A.CallTo(() => _populationSettingsMapper.MapFrom(_newIndividual)).Returns(_mappedSettings);
        }
Пример #2
0
        public virtual ParameterRange Clone()
        {
            var clone = new ParameterRange();

            clone.UpdatePropertiesFrom(this, null);
            return(clone);
        }
Пример #3
0
            private static bool maxGreaterThanMin(ParameterRange param, double?maxValueInDisplayUnit)
            {
                if (doesNotNeedCheck(param.MinValue, maxValueInDisplayUnit))
                {
                    return(true);
                }

                return(param.baseValueFrom(maxValueInDisplayUnit) >= param.MinValue);
            }
Пример #4
0
            private static bool minLessThanDbMax(ParameterRange param, double?minValueInDisplayUnit)
            {
                if (doesNotNeedCheck(param.DbMaxValue, minValueInDisplayUnit))
                {
                    return(true);
                }

                return(param.baseValueFrom(minValueInDisplayUnit) <= param.DbMaxValue);
            }
Пример #5
0
        private double tryCreateRandomValueFor(ParameterRange parameterRange, IParameter baseParameter, out bool success)
        {
            try
            {
                success = true;
                if (parameterRange.IsConstant)
                {
                    return(parameterRange.MinValue.Value);
                }

                return(baseParameter.RandomDeviateIn(_randomGenerator, parameterRange.MinValue, parameterRange.MaxValue));
            }
            catch (DistributionException)
            {
                success = false;
                return(baseParameter.Value);
            }
        }
        protected override Task Context()
        {
            _individualMapper         = A.Fake <IndividualMapper>();
            _parameterRangeMapper     = A.Fake <ParameterRangeMapper>();
            _genderRepository         = A.Fake <IGenderRepository>();
            _populationSettingsMapper = A.Fake <IIndividualToPopulationSettingsMapper>();
            sut = new RandomPopulationSettingsMapper(_parameterRangeMapper, _individualMapper, _populationSettingsMapper, _genderRepository);

            _ageParameterRange = new ConstrainedParameterRange {
                ParameterName = CoreConstants.Parameters.AGE
            };
            _weightParameterRange = new ParameterRange {
                ParameterName = CoreConstants.Parameters.MEAN_WEIGHT
            };

            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(null)).Returns((Snapshots.ParameterRange)null);
            _ageRangeSnapshot = new Snapshots.ParameterRange();
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_ageParameterRange)).Returns(_ageRangeSnapshot);

            _weightRangeSnapshot = new Snapshots.ParameterRange();
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_weightParameterRange)).Returns(_weightRangeSnapshot);


            _baseIndividual     = new Individual();
            _snapshotIndividual = new Snapshots.Individual();
            A.CallTo(() => _individualMapper.MapToSnapshot(_baseIndividual)).Returns(_snapshotIndividual);

            _randomPopulationSettings = new RandomPopulationSettings
            {
                NumberOfIndividuals = 10,
                BaseIndividual      = _baseIndividual
            };

            _randomPopulationSettings.AddParameterRange(_weightParameterRange);
            _randomPopulationSettings.AddParameterRange(_ageParameterRange);

            A.CallTo(() => _genderRepository.Female).Returns(new Gender {
                Id = "Female", Name = "Female"
            });
            A.CallTo(() => _genderRepository.Male).Returns(new Gender {
                Id = "Male", Name = "Male"
            });
            return(Task.FromResult(true));
        }
Пример #7
0
        protected override async Task Context()
        {
            await base.Context();

            _newIndividual = new Individual();
            _newAgeRange   = new ParameterRange {
                ParameterName = CoreConstants.Parameters.AGE
            };
            _newWeightRange = new ParameterRange {
                ParameterName = CoreConstants.Parameters.MEAN_WEIGHT
            };

            _snapshot = await sut.MapToSnapshot(_randomPopulationSettings);

            _snapshot.ProportionOfFemales = _proportionOfFemale;

            A.CallTo(() => _parameterRangeMapper.MapToModel(_snapshot.Age, A <ParameterRangeSnapshotContext> .That.Matches(x => x.ParameterRange == _newAgeRange))).Returns(_newAgeRange);
            A.CallTo(() => _parameterRangeMapper.MapToModel(_snapshot.Weight, A <ParameterRangeSnapshotContext> .That.Matches(x => x.ParameterRange == _newWeightRange))).Returns(_newWeightRange);
            A.CallTo(() => _individualMapper.MapToModel(_snapshotIndividual, _snapshotContext)).Returns(_newIndividual);

            _mappedSettings = new RandomPopulationSettings();
            A.CallTo(() => _populationSettingsMapper.MapFrom(_newIndividual)).Returns(_mappedSettings);
            _mappedSettings.AddParameterRange(_newAgeRange);
            _mappedSettings.AddParameterRange(_newWeightRange);

            _maleRatio = new GenderRatio
            {
                Gender = _genderRepository.Male,
                Ratio  = 50
            };

            _femaleRatio = new GenderRatio
            {
                Gender = _genderRepository.Female,
                Ratio  = 50
            };

            _mappedSettings.AddGenderRatio(_maleRatio);
            _mappedSettings.AddGenderRatio(_femaleRatio);

            _snapshot.DiseaseStateParameters = null;
        }
Пример #8
0
 public void AddParameterRange(ParameterRange parameterRange) => _parameterRanges.Add(parameterRange);
Пример #9
0
        protected override Task Context()
        {
            _individualMapper         = A.Fake <IndividualMapper>();
            _parameterRangeMapper     = A.Fake <ParameterRangeMapper>();
            _genderRepository         = A.Fake <IGenderRepository>();
            _populationSettingsMapper = A.Fake <IIndividualToPopulationSettingsMapper>();
            _logger = A.Fake <IOSPSuiteLogger>();
            sut     = new RandomPopulationSettingsMapper(_parameterRangeMapper, _individualMapper, _populationSettingsMapper, _genderRepository, _logger);

            _ageParameterRange = new ConstrainedParameterRange {
                ParameterName = CoreConstants.Parameters.AGE
            };
            _weightParameterRange = new ParameterRange {
                ParameterName = CoreConstants.Parameters.MEAN_WEIGHT
            };

            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(null)).Returns((Snapshots.ParameterRange)null);
            _ageRangeSnapshot = new Snapshots.ParameterRange();
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_ageParameterRange)).Returns(_ageRangeSnapshot);

            _weightRangeSnapshot = new Snapshots.ParameterRange();
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_weightParameterRange)).Returns(_weightRangeSnapshot);


            _baseIndividual = new Individual
            {
                OriginData = new OriginData()
            };
            _diseaseStateParameter = new OriginDataParameter(10, "mg/kg", "DIS_STATE_PARAM");
            _baseIndividual.OriginData.AddDiseaseStateParameter(_diseaseStateParameter);

            _diseaseStateParameterRangeSnapshot = new Snapshots.ParameterRange();
            _diseaseStateParameterRange         = new ConstrainedParameterRange {
                ParameterName = _diseaseStateParameter.Name
            };
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_diseaseStateParameterRange)).Returns(_diseaseStateParameterRangeSnapshot);


            _snapshotIndividual = new Snapshots.Individual();
            A.CallTo(() => _individualMapper.MapToSnapshot(_baseIndividual)).Returns(_snapshotIndividual);

            _randomPopulationSettings = new RandomPopulationSettings
            {
                NumberOfIndividuals = 10,
                BaseIndividual      = _baseIndividual
            };

            _randomPopulationSettings.AddParameterRange(_weightParameterRange);
            _randomPopulationSettings.AddParameterRange(_ageParameterRange);
            _randomPopulationSettings.AddParameterRange(_diseaseStateParameterRange);

            A.CallTo(() => _genderRepository.Female).Returns(new Gender {
                Id = "Female", Name = "Female"
            });
            A.CallTo(() => _genderRepository.Male).Returns(new Gender {
                Id = "Male", Name = "Male"
            });

            _project         = new PKSimProject();
            _snapshotContext = new SnapshotContext(_project, ProjectVersions.Current);
            return(Task.FromResult(true));
        }