private TableFormula createTableFormulaFrom(TableFormulaParameter <IDistributedParameter> parameter, IReadOnlyList <ParameterDistributionMetaData> allDistributionsWithAgeStrictBiggerThanOriginData) { if (allDistributionsWithAgeStrictBiggerThanOriginData.Count == 0) { return(null); } var tableFormula = _formulaFactory.CreateDistributedTableFormula(); updateTableFormulaFrom(tableFormula, parameter.Parameter); tableFormula.Percentile = parameter.Percentile; if (parameter.PercentileIsInvalid) { throw new PKSimException(PKSimConstants.Error.CannotCreateAgingSimulationWithInvalidPercentile(_fullPathDisplayResolver.FullPathFor(parameter.Parameter), parameter.Percentile)); } //0 because of the offset with age tableFormula.AddPoint(0, parameter.Value, DistributionMetaData.From(parameter.Parameter)); foreach (var scaledDistribution in scaleDistributions(parameter, allDistributionsWithAgeStrictBiggerThanOriginData)) { var age = ageWithOffsetInMin(scaledDistribution.Age, parameter.OriginData.Age.Value); var value = valueFrom(scaledDistribution, parameter.Percentile); tableFormula.AddPoint(age, value, DistributionMetaData.From(scaledDistribution)); } return(tableFormula); }
protected override Task Context() { _tableFormulaMapper = A.Fake <TableFormulaMapper>(); _formulaFactory = A.Fake <IFormulaFactory>(); sut = new DistributedTableFormulaMapper(_tableFormulaMapper, _formulaFactory); _distributedTableFormula = new DistributedTableFormula(); _distributionMetaData1 = new DistributionMetaData { Mean = 1, Deviation = 2, Distribution = DistributionTypes.LogNormal }; _distributionMetaData2 = new DistributionMetaData { Mean = 3, Deviation = 4, Distribution = DistributionTypes.Normal }; _distributedTableFormula.AddDistributionMetaData(_distributionMetaData1); _distributedTableFormula.AddDistributionMetaData(_distributionMetaData2); _distributedTableFormula.Percentile = 0.8; return(Task.FromResult(true)); }
protected override void Context() { base.Context(); _distributionMetaData = new DistributionMetaData { Mean = 4, Distribution = DistributionTypes.Discrete }; }
protected override void Context() { base.Context(); _distributionMetaData = new DistributionMetaData { Deviation = 1, Mean = 4, Distribution = DistributionTypes.Uniform }; }
protected override void Context() { base.Context(); _meta1 = new DistributionMetaData { Mean = 1, Deviation = 2, Distribution = DistributionTypes.Normal }; sut.AddPoint(10, 20, _meta1); }
protected override void Context() { base.Context(); _distributionMetaData = new DistributionMetaData { Deviation = 2, Distribution = DistributionTypes.Normal, Mean = 5 }; _result = DistributionMetaData.From(_distributionMetaData); }
private Model.DistributionMetaData modelDistributionDataFrom(DistributionMetaData distributionMetaData) { return(new Model.DistributionMetaData { Mean = distributionMetaData.Mean, Deviation = distributionMetaData.Deviation, Distribution = DistributionTypes.ById(distributionMetaData.Distribution) }); }
protected override void Context() { base.Context(); _meta1 = new DistributionMetaData { Mean = 1, Deviation = 2, Distribution = DistributionTypes.Normal }; _meta2 = new DistributionMetaData { Mean = 3, Deviation = 4, Distribution = DistributionTypes.LogNormal }; }
private DistributedTableFormula formulaFrom(DataRepository dataRepository) { var baseGrid = dataRepository.BaseGrid; var valueColumns = dataRepository.AllButBaseGrid().ToList(); DataColumn meanColumn, deviationColumn; if (valueColumns.Count == 1) { meanColumn = valueColumns[0]; //dummy deviation filled with 1 since this was not defined in the import action deviationColumn = new DataColumn(Constants.Distribution.DEVIATION, _dimensionRepository.NoDimension, baseGrid) { Values = new float[baseGrid.Count].InitializeWith(1f) }; } else { meanColumn = valueColumns.Single(x => x.RelatedColumns.Any()); deviationColumn = valueColumns.Single(x => !x.RelatedColumns.Any()); } var formula = _formulaFactory.CreateDistributedTableFormula().WithName(dataRepository.Name); formula.InitializedWith(CoreConstants.Parameters.PMA, dataRepository.Name, baseGrid.Dimension, meanColumn.Dimension); formula.XDisplayUnit = baseGrid.Dimension.Unit(baseGrid.DataInfo.DisplayUnitName); formula.YDisplayUnit = meanColumn.Dimension.Unit(meanColumn.DataInfo.DisplayUnitName); foreach (var ageValue in baseGrid.Values) { var mean = meanColumn.GetValue(ageValue).ToDouble(); var pma = ageValue.ToDouble(); var deviation = deviationColumn.GetValue(ageValue).ToDouble(); var distribution = new DistributionMetaData { Mean = mean, Deviation = deviation, Distribution = DistributionTypes.LogNormal }; formula.AddPoint(pma, mean, distribution); } return(formula); }
protected override void Context() { base.Context(); _distributedParameter = DomainHelperForSpecs.NormalDistributedParameter(); _result = DistributionMetaData.From(_distributedParameter); }