Exemplo n.º 1
0
        public static IDistributedParameter NormalDistributedParameter(double defaultMean = 0, double defaultDeviation = 1, double defaultPercentile = 0.5)
        {
            var parameter = new PKSimDistributedParameter().WithId("P1");
            var pathFactory = new ObjectPathFactoryForSpecs();
            var meanParameter = new PKSimParameter {
                Name = Constants.Distribution.MEAN
            }.WithFormula(new ConstantFormula(defaultMean).WithId("MeanFormula")).WithId("Mean");

            addDimensionTo(meanParameter);
            var stdParameter = new PKSimParameter {
                Name = Constants.Distribution.DEVIATION
            }.WithFormula(new ConstantFormula(defaultDeviation).WithId("DeviationFormula")).WithId("Deviation");

            addDimensionTo(stdParameter);
            var percentileParameter = new PKSimParameter {
                Name = Constants.Distribution.PERCENTILE
            }.WithFormula(new ConstantFormula(defaultPercentile).WithId("PercentileFormula")).WithId("Percentile");

            addDimensionTo(percentileParameter);
            parameter.Add(meanParameter);
            parameter.Add(stdParameter);
            parameter.Add(percentileParameter);
            parameter.Formula = new NormalDistributionFormula().WithId("NormalDistributionFormula");
            parameter.Formula.AddObjectPath(pathFactory.CreateRelativeFormulaUsablePath(parameter, meanParameter));
            parameter.Formula.AddObjectPath(pathFactory.CreateRelativeFormulaUsablePath(parameter, stdParameter));
            addDimensionTo(parameter);
            return(parameter);
        }
        protected override void Context()
        {
            _randomGenerator = new RandomGenerator();
            sut               = new PKSimDistributedParameter().WithName("P");
            _minValue         = 5;
            _maxValue         = 10;
            sut.Info.MinValue = _minValue;
            sut.Info.MaxValue = _maxValue;

            _pathFactory      = new ObjectPathFactoryForSpecs();
            _minimumParameter = new PKSimParameter {
                Name = Constants.Distribution.MINIMUM
            }.WithFormula(new ExplicitFormula("0"));
            _maximumParameter = new PKSimParameter {
                Name = Constants.Distribution.MAXIMUM
            }.WithFormula(new ExplicitFormula("1"));
            _percentileParameter = new PKSimParameter {
                Name = Constants.Distribution.PERCENTILE
            }.WithFormula(new ExplicitFormula("0.5"));
            sut.Add(_minimumParameter);
            sut.Add(_maximumParameter);
            sut.Add(_percentileParameter);
            _distributedFormula = new UniformDistributionFormula();
            _distributedFormula.AddObjectPath(_pathFactory.CreateRelativeFormulaUsablePath(sut, _minimumParameter).WithAlias(Constants.Distribution.MINIMUM));
            _distributedFormula.AddObjectPath(_pathFactory.CreateRelativeFormulaUsablePath(sut, _maximumParameter).WithAlias(Constants.Distribution.MAXIMUM));
            sut.Formula = _distributedFormula;
        }
        protected override void Context()
        {
            base.Context();
            _distribuedParamterDTO = A.Fake <ParameterDTO>();
            A.CallTo(() => _distribuedParamterDTO.Parameter).Returns(new PKSimDistributedParameter().WithFormula(new LogNormalDistributionFormula()));
            _nonDistibuedParameterDTO = A.Fake <ParameterDTO>();
            A.CallTo(() => _nonDistibuedParameterDTO.Parameter).Returns(A.Fake <IParameter>());
            _disrecteDistributedParameterDTO = A.Fake <ParameterDTO>();
            var discretedDistributedParameter = new PKSimDistributedParameter().WithFormula(new DiscreteDistributionFormula());

            A.CallTo(() => _disrecteDistributedParameterDTO.Parameter).Returns(discretedDistributedParameter);
        }
 protected override void Context()
 {
     sut            = new PKSimDistributedParameter();
     _pathFactory   = new ObjectPathFactoryForSpecs();
     _meanParameter = new PKSimParameter {
         Name = Constants.Distribution.MEAN
     }.WithFormula(new ExplicitFormula("10"));
     _stdParameter = new PKSimParameter {
         Name = Constants.Distribution.DEVIATION
     }.WithFormula(new ExplicitFormula("10"));
     _percentileParameter = new PKSimParameter {
         Name = Constants.Distribution.PERCENTILE
     }.WithFormula(new ExplicitFormula("0.5"));
     sut.Add(_meanParameter);
     sut.Add(_stdParameter);
     sut.Add(_percentileParameter);
     sut.Formula = new NormalDistributionFormula();
     sut.Formula.AddObjectPath(_pathFactory.CreateRelativeFormulaUsablePath(sut, _meanParameter));
     sut.Formula.AddObjectPath(_pathFactory.CreateRelativeFormulaUsablePath(sut, _stdParameter));
 }