private void updateFromDto(NumberOfBinsGroupingDefinition groupingDefinition) { groupingDefinition.Items.Clear(); groupingDefinition.NumberOfBins = _binSizeGroupingDTO.NumberOfBins; groupingDefinition.StartColor = _binSizeGroupingDTO.StartColor; groupingDefinition.EndColor = _binSizeGroupingDTO.EndColor; groupingDefinition.NamingPattern = _binSizeGroupingDTO.NamingPattern; groupingDefinition.Strategy = _binSizeGroupingDTO.Strategy; groupingDefinition.AddItems(_binSizeGroupingDTO.Labels.Select(groupingItemFromLabel)); }
public IReadOnlyList <string> GenerateLabels(IPopulationDataCollector populationDataCollector, PopulationAnalysisNumericField numericField, LabelGenerationOptions options, int numberOfLabels) { var groupingDefinition = new NumberOfBinsGroupingDefinition(numericField.Name) { NumberOfBins = numberOfLabels, NamingPattern = options.Pattern, Strategy = options.Strategy }; groupingDefinition.CreateLimits(populationDataCollector, numericField); return(GenerateLabels(populationDataCollector, numericField, groupingDefinition)); }
protected override void Context() { base.Context(); _groupingDefinition = new NumberOfBinsGroupingDefinition(_field.Name); _groupingDefinition.StartColor = Color.Red; _groupingDefinition.EndColor = Color.PowderBlue; _groupingDefinition.NamingPattern = "Tralala"; _groupingDefinition.NumberOfBins = 2; _groupingDefinition.Strategy = LabelGenerationStrategies.Alpha; _groupingDefinition.AddItem(new GroupingItem { Label = "Label1" }); _groupingDefinition.AddItem(new GroupingItem { Label = "Label2" }); sut.InitializeWith(_field, _populationDataCollector); }
public void Edit(IGroupingDefinition groupingDefinition) { _groupingDefinition = groupingDefinition.DowncastTo <NumberOfBinsGroupingDefinition>(); _binSizeGroupingDTO.NumberOfBins = _groupingDefinition.NumberOfBins; _binSizeGroupingDTO.StartColor = _groupingDefinition.StartColor; _binSizeGroupingDTO.EndColor = _groupingDefinition.EndColor; _binSizeGroupingDTO.NamingPattern = _groupingDefinition.NamingPattern; _binSizeGroupingDTO.Strategy = _groupingDefinition.Strategy; foreach (var groupingItem in _groupingDefinition.Items) { var label = new GroupingItemDTO(); label.UpdateFrom(groupingItem); _binSizeGroupingDTO.Labels.Add(label); } _binSizeGroupingDTO.Symbol = _binSizeGroupingDTO.Labels.First().Symbol; bindToView(); }
public void InitializeWith(IPopulationAnalysisField populationAnalysisField, IPopulationDataCollector populationDataCollector) { _numericField = populationAnalysisField as PopulationAnalysisNumericField; //this should never happen if (_numericField == null) { throw new ArgumentException(PKSimConstants.Error.GroupingCannotBeUsedWithFieldOfType(populationAnalysisField.DataType, GroupingDefinitions.NumberOfBins.DisplayName)); } if (!_numericField.CanBeUsedForGroupingIn(populationDataCollector)) { throw new PKSimException(PKSimConstants.Error.GroupingCannotBeCreatedForField(populationAnalysisField.Name)); } _populationDataCollector = populationDataCollector; _groupingDefinition = new NumberOfBinsGroupingDefinition(_numericField.Name); }
protected override Task Context() { _dimensionRepository = A.Fake <IDimensionRepository>(); sut = new GroupingDefinitionMapper(_dimensionRepository); _groupingItem1 = new GroupingItem(); _groupingItem2 = new GroupingItem(); _dimension = DomainHelperForSpecs.TimeDimensionForSpecs(); _unit = _dimension.Unit("h"); A.CallTo(() => _dimensionRepository.DimensionByName(_dimension.Name)).Returns(_dimension); _valueMappingGrouping = new ValueMappingGroupingDefinition("F1"); _valueMappingGrouping.AddValueLabel("Item1", _groupingItem1); _valueMappingGrouping.AddValueLabel("Item2", _groupingItem2); _fixedLimitGrouping = new FixedLimitsGroupingDefinition("F1") { DisplayUnit = _unit, Dimension = _dimension, }; _fixedLimitGrouping.SetLimits(new[] { 60, 120.0 }.OrderBy(x => x)); _fixedLimitGrouping.AddItem(_groupingItem1); _fixedLimitGrouping.AddItem(_groupingItem2); _numberOfBinsGrouping = new NumberOfBinsGroupingDefinition("F1") { DisplayUnit = _unit, Dimension = _dimension, NumberOfBins = 4, NamingPattern = "TOTO", StartColor = Color.Aqua, EndColor = Color.Red, Strategy = LabelGenerationStrategies.Numeric }; _numberOfBinsGrouping.AddItem(_groupingItem1); _numberOfBinsGrouping.AddItem(_groupingItem2); return(_completed); }
protected override void Because() { _result = sut.GroupingDefinition as NumberOfBinsGroupingDefinition; }
private void mapNumberOfBinsGroupingToModel(SnapshotGroupingDefinition snapshot, NumberOfBinsGroupingDefinition groupingDefinition) { mapIntervalGroupingToModel(snapshot, groupingDefinition); groupingDefinition.NumberOfBins = ModelValueFor(snapshot.NumberOfBins); groupingDefinition.StartColor = ModelValueFor(snapshot.StartColor); groupingDefinition.EndColor = ModelValueFor(snapshot.EndColor); groupingDefinition.NamingPattern = snapshot.NamingPattern; groupingDefinition.Strategy = LabelGenerationStrategies.ById(ModelValueFor(snapshot.Strategy)); }
private void mapNumberOfBinsGroupingToSnapshot(SnapshotGroupingDefinition snapshot, NumberOfBinsGroupingDefinition groupingDefinition) { mapIntervalGroupingToSnapshot(snapshot, groupingDefinition); snapshot.NumberOfBins = groupingDefinition.NumberOfBins; snapshot.StartColor = groupingDefinition.StartColor; snapshot.EndColor = groupingDefinition.EndColor; snapshot.NamingPattern = groupingDefinition.NamingPattern; snapshot.Strategy = groupingDefinition.Strategy.Id; }
protected override async Task Because() { _newNumberOfBinsGrouping = await sut.MapToModel(_snapshot) as NumberOfBinsGroupingDefinition; }
public IReadOnlyList <string> GenerateLabels(IPopulationDataCollector populationDataCollector, PopulationAnalysisNumericField numericField, NumberOfBinsGroupingDefinition groupingDefinition) { var limitsInDisplayUnit = groupingDefinition.Limits.Select(v => convertedValue(numericField, v)).ToList(); var values = numericField.GetValues(populationDataCollector); //add min and max to the limits limitsInDisplayUnit.Insert(0, convertedValue(numericField, values.Min())); limitsInDisplayUnit.Add(convertedValue(numericField, values.Max())); return(GenerateLabels(new LabelGenerationOptions { Pattern = groupingDefinition.NamingPattern, Strategy = groupingDefinition.Strategy }, limitsInDisplayUnit)); }
public override void GlobalContext() { base.GlobalContext(); _populationAnalysis = new PopulationPivotAnalysis(); _pkParameterField = new PopulationAnalysisPKParameterField().WithName("PKParam"); _pkParameterField.PKParameter = "AUC"; _pkParameterField.QuantityPath = "A|B|C"; _pkParameterField.QuantityType = QuantityType.Drug; _pkParameterField.Dimension = _dimensionRepository.MassConcentration; _parameterField = new PopulationAnalysisParameterField().WithName("Param"); _parameterField.ParameterPath = "A|B|C|D"; _parameterField.Dimension = _dimensionRepository.Auc; _outputField = new PopulationAnalysisOutputField().WithName("Output"); _outputField.QuantityPath = "A|B|C"; _outputField.Dimension = _dimensionRepository.Auc; _outputField.Color = Color.Aquamarine; _genderField = new PopulationAnalysisCovariateField { Covariate = "Gender" }.WithName("Gender"); var numberOfBinsGroupingDefinition = new NumberOfBinsGroupingDefinition(_parameterField.Name) { NumberOfBins = 2 }; numberOfBinsGroupingDefinition.NamingPattern = "AA"; numberOfBinsGroupingDefinition.StartColor = Color.AliceBlue; numberOfBinsGroupingDefinition.EndColor = Color.RoyalBlue; numberOfBinsGroupingDefinition.Strategy = LabelGenerationStrategies.Roman; numberOfBinsGroupingDefinition.AddItems(PopulationAnalysisHelperForSpecs.BMIGroups); _numberOfBinsDerivedField = new PopulationAnalysisGroupingField(numberOfBinsGroupingDefinition).WithName("NumberOfBins"); var fixedLimitsGroupingDefinition = new FixedLimitsGroupingDefinition(_pkParameterField.Name); fixedLimitsGroupingDefinition.AddItems(PopulationAnalysisHelperForSpecs.AgeGroups); _fixedLimitsGroupingDefinitionField = new PopulationAnalysisGroupingField(fixedLimitsGroupingDefinition) .WithName("FixedLimits"); fixedLimitsGroupingDefinition.SetLimits(new[] { 1d, 2d }.OrderBy(x => x)); _derivedFieldWithFixedExpression = new PopulationAnalysisExpressionField("A+B") .WithName("FixedExpression"); var valueMappingGroupingDefinition = new ValueMappingGroupingDefinition(_genderField.Name); valueMappingGroupingDefinition.AddValueLabel("Male", PopulationAnalysisHelperForSpecs.GroupingItemMale); valueMappingGroupingDefinition.AddValueLabel("Female", PopulationAnalysisHelperForSpecs.GroupingItemFemale); var valueMappingGroupingDefinitionField = new PopulationAnalysisGroupingField(valueMappingGroupingDefinition).WithName("ValueMapping"); _populationAnalysis.Add(_pkParameterField); _populationAnalysis.Add(_parameterField); _populationAnalysis.Add(_genderField); _populationAnalysis.Add(_numberOfBinsDerivedField); _populationAnalysis.Add(_fixedLimitsGroupingDefinitionField); _populationAnalysis.Add(_derivedFieldWithFixedExpression); _populationAnalysis.Add(valueMappingGroupingDefinitionField); _populationAnalysis.Add(_outputField); }