Пример #1
0
        protected override void Context()
        {
            _dataFactory         = A.Fake <IDataFactory>();
            _dimensionRepository = A.Fake <IDimensionRepository>();
            sut = new DataRepositoryFromResultsCreator(_dimensionRepository, new ObjectPathFactoryForSpecs(), _dataFactory);

            _simulation       = new IndividualSimulation().WithName("S");
            _simulation.Model = new OSPSuite.Core.Domain.Model();
            var root = new Container().WithContainerType(ContainerType.Simulation).WithName(_simulation.Name);

            _simulation.Model.Root = root;
            var liver = new Container().WithName("LIVER");

            liver.Add(new Observer().WithName("C"));
            var kidney = new Container().WithName("KIDNEY");

            kidney.Add(new Observer().WithName("C"));
            root.Add(liver);
            root.Add(kidney);

            _simulationResults  = new SimulationResults();
            _simulation.Results = _simulationResults;
            _timeValues         = new QuantityValues {
                QuantityPath = "Time", Values = new[] { 1f, 2f, 3f }
            };
            _simulationResults.Time = _timeValues;

            _individualResults = new IndividualResults();
            _individualResults.Add(new QuantityValues {
                QuantityPath = "LIVER|C", Time = _timeValues, Values = new[] { 10f, 20f, 30f }
            });
            _individualResults.Add(new QuantityValues {
                QuantityPath = "KIDNEY|C", Time = _timeValues, Values = new[] { 11f, 22f, 33f }
            });
        }
Пример #2
0
        protected override void Context()
        {
            base.Context();
            var quantityValue1 = new QuantityValues {
                QuantityPath = "Path1"
            };
            var quantityValue2 = new QuantityValues {
                QuantityPath = "Path1"
            };

            var individualResults1 = new IndividualResults {
                IndividualId = 1
            };

            individualResults1.Add(quantityValue1);

            var individualResults2 = new IndividualResults {
                IndividualId = 2
            };

            individualResults2.Add(quantityValue2);

            sut.Time = new QuantityValues {
                QuantityPath = "Time"
            };
            individualResults1.Time = sut.Time;
            individualResults2.Time = sut.Time;
            sut.AddRange(new[] { individualResults1, individualResults2 });
        }
Пример #3
0
        protected override void Context()
        {
            base.Context();
            _quantityValue1 = new QuantityValues {
                QuantityPath = "Path1"
            };
            _quantityValue2 = new QuantityValues {
                QuantityPath = "Path1"
            };
            _anotherQuantityValue = new QuantityValues {
                QuantityPath = "Path2"
            };

            var individualResults1 = new IndividualResults {
                IndividualId = 3
            };

            individualResults1.Add(_quantityValue1);
            individualResults1.Add(_anotherQuantityValue);

            var individualResults2 = new IndividualResults {
                IndividualId = 2
            };

            individualResults2.Add(_quantityValue2);

            sut.Add(individualResults1);
            sut.Add(individualResults2);

            //reorder results before accessing them
            sut.ReorderByIndividualId();
        }
Пример #4
0
        protected override void Context()
        {
            base.Context();
            _quantityPath = "Path";
            sut.Results   = new SimulationResults();
            _qv0          = new QuantityValues {
                QuantityPath = _quantityPath
            };
            var indResults0 = new IndividualResults {
                _qv0
            };

            indResults0.IndividualId = 0;

            _qv2 = new QuantityValues {
                QuantityPath = _quantityPath
            };
            var indResults2 = new IndividualResults {
                _qv2
            };

            indResults2.IndividualId = 2;

            sut.Results.Add(indResults0);
            sut.Results.Add(indResults2);
        }
Пример #5
0
        private QuantityValues quantityPathFor(IndividualResults individualResult, string path, Cache <QuantityValues, List <float> > cacheQuantitiesValues)
        {
            var quantity = individualResult.ValuesFor(path);

            if (quantity == null)
            {
                quantity = new QuantityValues {
                    QuantityPath = path
                };
                cacheQuantitiesValues.Add(quantity, new List <float>());
                individualResult.Add(quantity);
            }
            return(quantity);
        }
Пример #6
0
        private static QuantityValues createArray(string path, IDimension dimension, int numberOfPoints)
        {
            var quantityValues = new QuantityValues();

            quantityValues.ColumnId     = ShortGuid.NewGuid();
            quantityValues.QuantityPath = path;
            var values = new float[numberOfPoints];

            for (int i = 0; i < values.Length; i++)
            {
                values[i] = (float)(_random.NextDouble() * 100);
            }
            quantityValues.Values = values;
            return(quantityValues);
        }
        protected override void Context()
        {
            var quantityValue1 = new QuantityValues {
                QuantityPath = "Path1"
            };
            var quantityValue2 = new QuantityValues {
                QuantityPath = "Path2"
            };

            sut      = new IndividualResults();
            sut.Time = new QuantityValues {
                QuantityPath = "Time"
            };
            sut.Add(quantityValue1);
            sut.Add(quantityValue2);
        }
        private DataColumn dataColumnFor(QuantityValues quantityValues, Simulation simulation, BaseGrid timeColumn)
        {
            var quantityAndPath = quantityAndPathFrom(simulation, quantityValues.PathList);
            var quantity        = quantityAndPath.Item1;

            if (quantity == null)
            {
                return(null);
            }

            var dimension = quantity.Dimension ?? _dimensionRepository.MolarConcentration;

            var column = createDataColumn(dataColumnIdFrom(quantityValues), quantity.Name, quantityAndPath.Item2, quantity, dimension, timeColumn, simulation);

            column.Values = quantityValues.Values;
            return(column);
        }
Пример #9
0
        protected override void Context()
        {
            base.Context();
            _quantityValue1 = new QuantityValues {
                QuantityPath = "Path1"
            };
            _quantityValue2 = new QuantityValues {
                QuantityPath = "Path2"
            };

            var individualResults1 = new IndividualResults {
                IndividualId = 1
            };

            individualResults1.Add(_quantityValue1);
            individualResults1.Add(_quantityValue2);

            sut.Add(individualResults1);
        }
        private void setSeriesValues(CurveData <TimeProfileXValue, TimeProfileYValue> series, DataRow row)
        {
            var statisticalAggregation = row[STATISTICAL_AGGREGATION].DowncastTo <StatisticalAggregation>();

            var timeAndAllValues = (Tuple <QuantityValues, FloatMatrix>)row[TIME_AND_VALUES];

            QuantityValues time      = timeAndAllValues.Item1;
            FloatMatrix    allValues = timeAndAllValues.Item2;

            var results = getResultsFor(statisticalAggregation, allValues);

            for (int i = 0; i < time.Length; i++)
            {
                var yValue = results[i];
                if (yValue.IsValid)
                {
                    series.Add(new TimeProfileXValue(time[i]), yValue);
                }
            }
        }
Пример #11
0
        public static PivotResult CreateOutputResults(PopulationPivotAnalysis analysis, PopulationAnalysisCovariateField genderField, PopulationAnalysisOutputField outputField1,
                                                      PopulationAnalysisOutputField outputField2,
                                                      ObservedDataCollection observedDataCollection = null)
        {
            var populationSimulation = A.Fake <IPopulationDataCollector>();

            var pivotResultCreator = new PivotResultCreator(new Pivoter(), new PopulationAnalysisFlatTableCreator());
            //simulation with 4 time points
            var time = new QuantityValues {
                Values = new float[] { 1, 2, 3, 4 }
            };
            var output11 = createValues(time, 10, 20, 30, 40);
            var output12 = createValues(time, 100, 200, 300, 400);
            var output13 = createValues(time, 1000, 2000, 3000, 4000);
            var output21 = createValues(time, 50, 60, 70, 80);
            var output22 = createValues(time, 500, 600, 700, 800);
            var output23 = createValues(time, 5000, 6000, 7000, 8000);

            A.CallTo(() => populationSimulation.NumberOfItems).Returns(3);
            A.CallTo(() => populationSimulation.AllCovariateValuesFor(CoreConstants.Covariates.GENDER)).Returns(new List <string> {
                "Male", "Female", "Male"
            });
            A.CallTo(() => populationSimulation.AllOutputValuesFor(outputField1.QuantityPath)).Returns(new List <QuantityValues> {
                output11, output12, output13
            });
            A.CallTo(() => populationSimulation.AllOutputValuesFor(outputField2.QuantityPath)).Returns(new List <QuantityValues> {
                output21, output22, output23
            });
            A.CallTo(() => populationSimulation.AllSimulationNames).Returns(new List <string> {
                "Sim", "Sim", "Sim"
            });


            if (observedDataCollection == null)
            {
                observedDataCollection = new ObservedDataCollection();
            }

            return(pivotResultCreator.Create(analysis, populationSimulation, observedDataCollection, AggregationFunctions.QuantityAggregation));
        }
Пример #12
0
        protected override void Context()
        {
            base.Context();
            _quantityValue1 = new QuantityValues {
                QuantityPath = "Path1", Values = new [] { 1f, 2f, 3f }
            };
            _quantityValue2 = new QuantityValues {
                QuantityPath = "Path1", Values = new[] { 4f, 5f, 6f }
            };
            _anotherQuantityValue = new QuantityValues {
                QuantityPath = "Path2", Values = new[] { 7f, 8f, 9f }
            };
            _timeValues = new QuantityValues {
                QuantityPath = "Time", Values = new[] { 10f, 20f, 30f }
            };

            var individualResults1 = new IndividualResults {
                IndividualId = 3
            };

            individualResults1.Add(_quantityValue1);
            individualResults1.Add(_anotherQuantityValue);

            var individualResults2 = new IndividualResults {
                IndividualId = 2
            };

            individualResults2.Add(_quantityValue2);

            sut.Add(individualResults1);
            sut.Add(individualResults2);
            sut.Time = _timeValues;

            //reorder results before accessing them
            sut.ReorderByIndividualId();
        }
        public void should_return_true_for_a_null_reference()
        {
            QuantityValues qv = null;

            qv.IsNull().ShouldBeTrue();
        }
        public void should_return_false_otherwise()
        {
            QuantityValues qv = new QuantityValues();

            qv.IsNull().ShouldBeFalse();
        }
Пример #15
0
 private static QuantityValues createValues(QuantityValues time, params float[] values)
 {
     return(new QuantityValues {
         Values = values, Time = time
     });
 }
Пример #16
0
 public NullQuantityValues()
 {
     Time = new QuantityValues();
 }
        protected override void Context()
        {
            base.Context();
            _pkParameter1 = new QuantityPKParameter {
                QuantityPath = "Output1", Name = "AUC"
            };
            _pkParameter1.SetValue(0, 10);
            _pkParameter1.SetValue(1, 11);
            _pkParameter1.SetValue(2, 12);
            _pkParameter1.SetValue(4, _defaultPK1Value);

            _pkParameter2 = new QuantityPKParameter {
                QuantityPath = "Output2", Name = "Cmax"
            };
            _pkParameter2.SetValue(0, 20);
            _pkParameter2.SetValue(1, 21);
            _pkParameter2.SetValue(2, 22);
            _pkParameter2.SetValue(3, 23);
            _pkParameter2.SetValue(4, _defaultPK2Value);

            _pkAnalyses.AddPKAnalysis(_pkParameter1);
            _pkAnalyses.AddPKAnalysis(_pkParameter2);

            _sensitivityParameter1 = A.Fake <SensitivityParameter>().WithName("SP1");
            A.CallTo(() => _sensitivityParameter1.DefaultValue).Returns(10);
            A.CallTo(() => _sensitivityParameter1.ParameterSelection.Path).Returns("SP1-PATH");

            _sensitivityParameter2 = A.Fake <SensitivityParameter>().WithName("SP2");
            A.CallTo(() => _sensitivityParameter2.DefaultValue).Returns(20);
            A.CallTo(() => _sensitivityParameter2.ParameterSelection.Path).Returns("SP2-PATH");

            _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter1);
            _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter2);

            var pv11 = new ParameterVariation(parameterName: _sensitivityParameter1.Name, parameterIndex: 0, variationId: 0, variation: new[] { 15d, 200d, 300d });
            var pv12 = new ParameterVariation(parameterName: _sensitivityParameter1.Name, parameterIndex: 0, variationId: 1, variation: new[] { 20d, 200d, 300d });
            var pv21 = new ParameterVariation(parameterName: _sensitivityParameter2.Name, parameterIndex: 1, variationId: 2, variation: new[] { 100d, 21d, 300d });
            var pv22 = new ParameterVariation(parameterName: _sensitivityParameter2.Name, parameterIndex: 1, variationId: 3, variation: new[] { 100d, 31d, 300d });

            _variationData.DefaultValues = new[] { 100d, 200d, 300d };
            _variationData.AddVariation(pv11);
            _variationData.AddVariation(pv12);
            _variationData.AddVariation(pv21);
            _variationData.AddVariation(pv22);

            _timeValues = new QuantityValues {
                QuantityPath = "Time", Values = new[] { 1, 2, 3, 4, 5f }
            };

            _resV11 = new IndividualResults {
                IndividualId = 0, Time = _timeValues
            };
            _resV11.Add(new QuantityValues {
                QuantityPath = "Output1", Values = new[] { 111.1f, 211.1f, 311.1f, 411.1f, 511.1f }
            });
            _resV11.Add(new QuantityValues {
                QuantityPath = "Output2", Values = new[] { 111.2f, 211.2f, 311.2f, 411.2f, 511.2f }
            });
            _resV11.UpdateQuantityTimeReference();

            _resV12 = new IndividualResults {
                IndividualId = 1, Time = _timeValues
            };
            _resV12.Add(new QuantityValues {
                QuantityPath = "Output1", Values = new[] { 112.1f, 212.1f, 312.1f, 412.1f, 512.1f }
            });
            _resV12.Add(new QuantityValues {
                QuantityPath = "Output2", Values = new[] { 112.2f, 212.2f, 312.2f, 412.2f, 512.2f }
            });
            _resV12.UpdateQuantityTimeReference();

            _resV21 = new IndividualResults {
                IndividualId = 2, Time = _timeValues
            };
            _resV21.Add(new QuantityValues {
                QuantityPath = "Output1", Values = new[] { 121.1f, 221.1f, 321.1f, 421.1f, 521.1f }
            });
            _resV21.Add(new QuantityValues {
                QuantityPath = "Output2", Values = new[] { 121.2f, 221.2f, 321.2f, 421.2f, 521.2f }
            });
            _resV21.UpdateQuantityTimeReference();

            _resV22 = new IndividualResults {
                IndividualId = 3, Time = _timeValues
            };
            _resV22.Add(new QuantityValues {
                QuantityPath = "Output1", Values = new[] { 122.1f, 222.1f, 322.1f, 422.1f, 522.1f }
            });
            _resV22.Add(new QuantityValues {
                QuantityPath = "Output2", Values = new[] { 122.2f, 222.2f, 322.2f, 422.2f, 522.2f }
            });
            _resV22.UpdateQuantityTimeReference();


            _simulationResults.Add(_resV11);
            _simulationResults.Add(_resV12);
            _simulationResults.Add(_resV21);
            _simulationResults.Add(_resV22);
        }
 private string dataColumnIdFrom(QuantityValues quantityValues)
 {
     return(quantityValues.ColumnId ?? ShortGuid.NewGuid());
 }
Пример #19
0
 private OutputParameterSensitivity calculateOutputParameterSensitivity(QuantityValues outputValue, ParameterVariation variationData, string parameterPath)
 {
     return(new OutputParameterSensitivity(variationData.ParameterName, parameterPath, variationData.ParameterValue, outputValue.QuantityPath, outputValue.Values, outputValue.Time.Values));
 }