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));
 }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
 protected override void Because()
 {
     _result = sut.GroupingDefinition as NumberOfBinsGroupingDefinition;
 }
Esempio n. 8
0
 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));
 }
Esempio n. 9
0
 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;
 }
Esempio n. 10
0
 protected override async Task Because()
 {
     _newNumberOfBinsGrouping = await sut.MapToModel(_snapshot) as NumberOfBinsGroupingDefinition;
 }
Esempio n. 11
0
        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);
        }