protected ParameterIdentificationMatrixAnalysisPresenter(IParameterIdentificationSingleRunAnalysisView view, IParameterIdentificationMatrixPresenter matrixPresenter,
                                                          IPresentationSettingsTask presentationSettingsTask, IMatrixCalculator matrixCalculator, ApplicationIcon icon, string defaultNotificationMessage) : base(view)
 {
     _presentationSettingsTask = presentationSettingsTask;
     _matrixCalculator         = matrixCalculator;
     _matrixPresenter          = matrixPresenter;
     AddSubPresenters(_matrixPresenter);
     View.ApplicationIcon = icon;
     matrixPresenter.DefaultNotificationMessage = defaultNotificationMessage;
 }
        protected override void Context()
        {
            _presentationSettingsTask = A.Fake <IPresentationSettingsTask>();
            _view                        = A.Fake <IParameterIdentificationSingleRunAnalysisView>();
            _matrixCalculator            = A.Fake <IMatrixCalculator>();
            _parameterIdentification     = A.Fake <ParameterIdentification>();
            _correlationCovarianceMatrix = A.Fake <ParameterIdentificationCorrelationMatrix>();
            _matrixPresenter             = A.Fake <IParameterIdentificationMatrixPresenter>();

            A.CallTo(() => _parameterIdentification.Results).Returns(new[] { new ParameterIdentificationRunResult {
                                                                                 JacobianMatrix = new JacobianMatrix(new[] { "A" })
                                                                             } });
            _matrix = new Matrix(new[] { "A" }, new[] { "A" });
            _matrix.SetRow(0, new[] { 1d });
            sut = new ParameterIdentificationCorrelationAnalysisPresenter(_view, _matrixPresenter, _presentationSettingsTask, _matrixCalculator);
        }
예제 #3
0
        protected override void Context()
        {
            _matrixCalculator      = A.Fake <IMatrixCalculator>();
            _dataRepositoryCreator = A.Fake <IConfidenceIntervalDataRepositoryCreator>();
            sut = new TimeProfileConfidenceIntervalCalculator(_matrixCalculator, _dataRepositoryCreator);

            _identificationParameter1 = new IdentificationParameter().WithName("IP1");
            _identificationParameter2 = new IdentificationParameter().WithName("IP2");

            var parameterNames = new[] { _identificationParameter1.Name, _identificationParameter2.Name };

            _parameterIdentification = A.Fake <ParameterIdentification>();
            _runResult = A.Fake <ParameterIdentificationRunResult>();
            _runResult.JacobianMatrix            = new JacobianMatrix(parameterNames);
            _allOutputMappings                   = new List <OutputMapping>();
            _allVariableIdentificationParameters = new List <IdentificationParameter>();
            _residualResults = new ResidualsResult();
            _runResult.BestResult.ResidualsResult = _residualResults;

            A.CallTo(() => _parameterIdentification.AllOutputMappings).Returns(_allOutputMappings);
            A.CallTo(() => _parameterIdentification.AllVariableIdentificationParameters).Returns(_allVariableIdentificationParameters);

            _simulation1 = A.Fake <ISimulation>().WithName("S1");
            _simulation2 = A.Fake <ISimulation>().WithName("S2");

            _output1 = createOutput(_simulation1, "C1", Scalings.Log);
            _allOutputMappings.Add(_output1);

            _output2 = createOutput(_simulation2, "C2", Scalings.Linear);
            _allOutputMappings.Add(_output2);

            _output3 = createOutput(_simulation1, "C3", Scalings.Log);
            _allOutputMappings.Add(_output3);

            _output4 = createOutput(_simulation2, "C4", Scalings.Linear);
            _allOutputMappings.Add(_output4);


            _ps1_1 = createParameterSelection(_simulation1, "P1_1");
            _identificationParameter1.AddLinkedParameter(_ps1_1);

            _ps2_1 = createParameterSelection(_simulation1, "P2_1");
            A.CallTo(() => _ps2_1.Dimension).Returns(_ps1_1.Dimension);
            _identificationParameter1.AddLinkedParameter(_ps2_1);

            _ps1_2 = createParameterSelection(_simulation1, "P1_2");
            _identificationParameter2.AddLinkedParameter(_ps1_2);

            _ps2_2 = createParameterSelection(_simulation2, "P2_2");
            A.CallTo(() => _ps2_2.Dimension).Returns(_ps1_2.Dimension);
            _identificationParameter2.AddLinkedParameter(_ps2_2);

            _allVariableIdentificationParameters.Add(_identificationParameter1);
            _allVariableIdentificationParameters.Add(_identificationParameter2);

            _observedData1 = A.Fake <DataRepository>();
            _observedData2 = A.Fake <DataRepository>();
            _observedData3 = A.Fake <DataRepository>();
            _observedData4 = A.Fake <DataRepository>();
            _observedData5 = A.Fake <DataRepository>();

            _residualResults.AddOutputResiduals(_output1.FullOutputPath, _observedData1, new[]
            {
                new Residual(2, 0.10, 1),
                new Residual(4, 0.40, 2),
                new Residual(6, 1.00, 1),
                new Residual(8, 0, 0),
            });

            _residualResults.AddOutputResiduals(_output1.FullOutputPath, _observedData2, new[]
            {
                new Residual(6, 0.20, 2),
                new Residual(8, 0.80, 4),
                new Residual(10, -0.20, 2),
                new Residual(12, 0, 0),
            });

            _residualResults.AddOutputResiduals(_output2.FullOutputPath, _observedData3, new[]
            {
                new Residual(2, 0, 0),
                new Residual(4, 0.20, 2),
                new Residual(6, -0.20, 2),
                new Residual(8, 0, 0),
            });

            _residualResults.AddOutputResiduals(_output2.FullOutputPath, _observedData4, new[]
            {
                new Residual(6, 0.20, 2),
                new Residual(8, 0.80, 4),
                new Residual(10, -0.20, 2),
                new Residual(12, 0, 0),
            });

            _residualResults.AddOutputResiduals(_output2.FullOutputPath, _observedData5, new[]
            {
                new Residual(6, 0, 0),
                new Residual(8, 0, 0),
                new Residual(10, 0, 0),
                new Residual(12, 0, 0),
            });


            var baseGrid = new BaseGrid("Time", DomainHelperForSpecs.TimeDimensionForSpecs())
            {
                Values = new[] { 0f, 2f, 4f, 6f, 8f, 10f, 12f, 14f, 16f }
            };
            var C1 = new DataColumn
            {
                BaseGrid = baseGrid,
                Values   = new[] { 0f, 0.71f, 2.10f, 3.14f, 3.76f, 4.04f, 4.12f, 4.09f, 4.02f }
            };

            A.CallTo(() => _runResult.BestResult.SimulationResultFor(_output1.FullOutputPath)).Returns(C1);

            var C2 = new DataColumn
            {
                BaseGrid = baseGrid,
                Values   = new[] { 0f, 0.37f, 0.38f, 0.31f, 0.23f, 0.17f, 0.14f, 0.12f, 0.11f }
            };

            A.CallTo(() => _runResult.BestResult.SimulationResultFor(_output2.FullOutputPath)).Returns(C2);

            var C3 = new DataColumn
            {
                BaseGrid = baseGrid,
                Values   = new[] { 0f, 0.53f, 0.54f, 0.43f, 0.32f, 0.25f, 0.20f, 0.17f, 0.16f }
            };

            A.CallTo(() => _runResult.BestResult.SimulationResultFor(_output3.FullOutputPath)).Returns(C3);

            var C4 = new DataColumn
            {
                BaseGrid = baseGrid,
                Values   = new[] { 0f, 0.16f, 0.16f, 0.13f, 0.10f, 0.07f, 0.06f, 0.05f, 0.05f }
            };

            A.CallTo(() => _runResult.BestResult.SimulationResultFor(_output4.FullOutputPath)).Returns(C4);


            var covarianceMatrix = new Matrix(parameterNames, parameterNames);

            A.CallTo(() => _matrixCalculator.CovarianceMatrixFrom(_runResult.JacobianMatrix, _residualResults)).Returns(covarianceMatrix);
            covarianceMatrix.SetRow(0, new[] { 5.05, -1.22 });
            covarianceMatrix.SetRow(1, new[] { -1.22, 0.51 });

            _runResult.JacobianMatrix.AddPartialDerivatives(createPartialDerivatives(_output1.FullOutputPath, parameterNames, new[]
            {
                new[] { 0d, 0d },
                new[] { 1d, 2d },
                new[] { 2d, 3d },
                new[] { 1d, 1d },
                new[] { 0.5d, 0.7d },
                new[] { 0.4d, 0.5d },
                new[] { 0.3d, 0.5d },
                new[] { 0.3d, 0.2d },
                new[] { 0.1d, 0.2d }
            }));

            _runResult.JacobianMatrix.AddPartialDerivatives(createPartialDerivatives(_output2.FullOutputPath, parameterNames, new[]
            {
                new[] { 0d, 0d },
                new[] { -1d, -2d },
                new[] { -1d, -2d },
                new[] { -0.5d, -1d },
                new[] { 0.1d, 0.1d },
                new[] { -0.1d, -0.1d },
                new[] { 0.2d, 0.2d },
                new[] { 0.3d, 0.3d },
                new[] { 0.2d, 0.2d }
            }));

            _runResult.JacobianMatrix.AddPartialDerivatives(createPartialDerivatives(_output3.FullOutputPath, parameterNames, new[]
            {
                new[] { 0d, 0d },
                new[] { 1d, 2d },
                new[] { 2d, 3d },
                new[] { 1d, 1d },
                new[] { 0.5d, 0.7d },
                new[] { 0.4d, 0.5d },
                new[] { 0.3d, 0.5d },
                new[] { 0.3d, 0.2d },
                new[] { 0.1d, 0.2d },
            }));

            _runResult.JacobianMatrix.AddPartialDerivatives(createPartialDerivatives(_output4.FullOutputPath, parameterNames, new[]
            {
                new[] { 0d, 0d },
                new[] { -4d, -4d },
                new[] { -3d, -3d },
                new[] { -2d, -2d },
                new[] { -1d, -1d },
                new[] { -0.5d, -0.5d },
                new[] { -0.4d, -0.4d },
                new[] { -0.3d, -0.3d },
                new[] { -0.2d, -0.2d },
            }));

            _confidenceIntervals = new Cache <string, double[]>();
            A.CallTo(() => _dataRepositoryCreator.CreateFor(A <string> ._, A <double[]> ._, A <OutputMapping> ._, A <OptimizationRunResult> ._))
            .Invokes(x => { _confidenceIntervals.Add(x.GetArgument <OutputMapping>(2).FullOutputPath, x.GetArgument <double[]>(1)); })
            .Returns(new DataRepository());
        }
예제 #4
0
 public Criptografador(Matrix pin, IMatrixCalculator calculadoraDeMatrizes)
 {
     _pin = pin;
     _calculadoraDeMatrizes = calculadoraDeMatrizes;
 }
 public ParameterIdentificationCorrelationAnalysisPresenter(IParameterIdentificationSingleRunAnalysisView view, IParameterIdentificationMatrixPresenter matrixPresenter, IPresentationSettingsTask presentationSettingsTask, IMatrixCalculator matrixCalculator) :
     base(view, matrixPresenter, presentationSettingsTask, matrixCalculator, ApplicationIcons.CorrelationAnalysis, Captions.ParameterIdentification.CorrelationMatrixNotAvailable)
 {
     matrixPresenter.NumberFormatter = new NumericFormatter <double>(new NumericFormatterOptions {
         AllowsScientificNotation = false, DecimalPlace = NumericFormatterOptions.Instance.DecimalPlace
     });
     view.SetAnalysisView(matrixPresenter.View);
 }
예제 #6
0
 public ParameterIdentificationCovarianceAnalysisPresenter(IParameterIdentificationSingleRunAnalysisView view, IParameterIdentificationCovarianceAnalysisView covarianceAnalysisView,
                                                           IParameterIdentificationMatrixPresenter matrixPresenter, IPresentationSettingsTask presentationSettingsTask, IMatrixCalculator matrixCalculator, IParameterIdentificationConfidenceIntervalPresenter confidenceIntervalPresenter) :
     base(view, matrixPresenter, presentationSettingsTask, matrixCalculator, ApplicationIcons.CovarianceAnalysis, Captions.ParameterIdentification.CovarianceMatrixNotAvailable)
 {
     _confidenceIntervalPresenter = confidenceIntervalPresenter;
     covarianceAnalysisView.SetMatrixView(matrixPresenter.View);
     covarianceAnalysisView.SetConfidenceIntevalView(_confidenceIntervalPresenter.View);
     view.SetAnalysisView(covarianceAnalysisView);
     AddSubPresenters(_confidenceIntervalPresenter);
     view.HelpId = HelpId.Tool_PI_Analysis_CovarianceMatrix;
 }
예제 #7
0
 public ParameterIdentificationCorrelationAnalysisPresenter(IParameterIdentificationSingleRunAnalysisView view, IParameterIdentificationMatrixPresenter matrixPresenter, IPresentationSettingsTask presentationSettingsTask, IMatrixCalculator matrixCalculator) :
     base(view, matrixPresenter, presentationSettingsTask, matrixCalculator, ApplicationIcons.CorrelationAnalysis, Captions.ParameterIdentification.CorrelationMatrixNotAvailable)
 {
     view.SetAnalysisView(matrixPresenter.View);
 }
예제 #8
0
 public MatricesCalculationService(IMatrixCalculator matrixCalculator)
 {
     _matrixCalculator = matrixCalculator;
 }
 public ConfidenceIntervalCalculator(IMatrixCalculator matrixCalculator)
 {
     _matrixCalculator = matrixCalculator;
 }
 public TimeProfileConfidenceIntervalCalculator(IMatrixCalculator matrixCalculator, IConfidenceIntervalDataRepositoryCreator dataRepositoryCreator)
 {
     _matrixCalculator      = matrixCalculator;
     _dataRepositoryCreator = dataRepositoryCreator;
 }