protected override void Context()
        {
            _view = A.Fake <IParameterIdentificationChartFeedbackView>();
            _chartDisplayPresenter           = A.Fake <IChartDisplayPresenter>();
            _dimensionFactory                = A.Fake <IDimensionFactory>();
            _predictedVsObservedChartService = A.Fake <IPredictedVsObservedChartService>();
            _displayUnitRetriever            = A.Fake <IDisplayUnitRetriever>();
            _parameterIdentification         = A.Fake <ParameterIdentification>();
            _observationColumns              = new List <DataColumn>();
            _curveList     = new List <Curve>();
            _baseGrid      = DomainHelperForSpecs.ObservedData().BaseGrid;
            _outputMapping = new OutputMapping();

            sut = new ParameterIdentificationPredictedVsObservedFeedbackPresenter(_view, _chartDisplayPresenter, _dimensionFactory, _displayUnitRetriever, _predictedVsObservedChartService);

            A.CallTo(() => _parameterIdentification.AllOutputMappings).Returns(new[] { _outputMapping });
            A.CallTo(() => _parameterIdentification.AllObservationColumnsFor(A <string> ._)).Returns(_observationColumns);
            _observationColumns.Add(new DataColumn());
            _observationColumns.Add(new DataColumn());

            A.CallTo(() => _predictedVsObservedChartService.AddCurvesFor(_observationColumns, A <DataColumn> ._, A <ParameterIdentificationPredictedVsObservedChart> ._, A <Action <DataColumn, Curve> > ._)).Invokes(x =>
            {
                var action = x.Arguments.Get <Action <DataColumn, Curve> >(3);
                _observationColumns.Each(observation =>
                {
                    var curve = new Curve {
                        Name = "Best"
                    };

                    action(new DataColumn(ShortGuid.NewGuid(), A.Fake <IDimension>(), _baseGrid), curve);
                    _curveList.Add(curve);
                });
                _chart = x.GetArgument <ParameterIdentificationPredictedVsObservedChart>(2);
            });
        }
コード例 #2
0
        public void SetXAxisDimension(IEnumerable <DataColumn> observationColumns, ParameterIdentificationPredictedVsObservedChart chart)
        {
            var dataColumns = observationColumns.ToList();

            var defaultDimension = mostFrequentDimension(dataColumns);
            var xAxis            = chart.AxisBy(AxisTypes.X);

            if (defaultDimension != null)
            {
                xAxis.Dimension = defaultDimension;
            }

            xAxis.Scaling  = chart.AxisBy(AxisTypes.Y).Scaling;
            xAxis.UnitName = chart.AxisBy(AxisTypes.Y).UnitName;

            chart.UpdateAxesVisibility();
        }
        protected override void Context()
        {
            _view = A.Fake <IParameterIdentificationSingleRunAnalysisView>();
            _chartEditorAndDisplayPresenter = A.Fake <IChartEditorAndDisplayPresenter>();
            _curveNamer = A.Fake <ICurveNamer>();
            _dataColumnToPathElementsMapper = A.Fake <IDataColumnToPathElementsMapper>();
            _chartTemplatingTask            = A.Fake <IChartTemplatingTask>();
            _presentationSettingsTask       = A.Fake <IPresentationSettingsTask>();
            _dimensionFactory           = A.Fake <IDimensionFactory>();
            _predictedVsObservedService = A.Fake <IPredictedVsObservedChartService>();
            _chartEditorLayoutTask      = A.Fake <IChartEditorLayoutTask>();
            _projectRetreiver           = A.Fake <IProjectRetriever>();

            _chartPresenterContext = A.Fake <ChartPresenterContext>();
            A.CallTo(() => _chartPresenterContext.EditorAndDisplayPresenter).Returns(_chartEditorAndDisplayPresenter);
            A.CallTo(() => _chartPresenterContext.CurveNamer).Returns(_curveNamer);
            A.CallTo(() => _chartPresenterContext.DataColumnToPathElementsMapper).Returns(_dataColumnToPathElementsMapper);
            A.CallTo(() => _chartPresenterContext.TemplatingTask).Returns(_chartTemplatingTask);
            A.CallTo(() => _chartPresenterContext.PresenterSettingsTask).Returns(_presentationSettingsTask);
            A.CallTo(() => _chartPresenterContext.DimensionFactory).Returns(_dimensionFactory);
            A.CallTo(() => _chartPresenterContext.EditorLayoutTask).Returns(_chartEditorLayoutTask);
            A.CallTo(() => _chartPresenterContext.ProjectRetriever).Returns(_projectRetreiver);

            _observationData = DomainHelperForSpecs.ObservedData();

            _simulationData = DomainHelperForSpecs.IndividualSimulationDataRepositoryFor("Simulation");
            _noDimensionColumnForSimulation = _simulationData.FirstDataColumn();

            _predictedVsObservedChart = new ParameterIdentificationPredictedVsObservedChart().WithAxes();
            _parameterIdentification  = A.Fake <ParameterIdentification>();
            sut = new ParameterIdentificationPredictedVsObservedChartPresenter(_view, _chartPresenterContext, _predictedVsObservedService);

            _parameterIdentificationRunResult = A.Fake <ParameterIdentificationRunResult>();
            A.CallTo(() => _parameterIdentification.Results).Returns(new[] { _parameterIdentificationRunResult });

            _residualResults       = new ResidualsResult();
            _optimizationRunResult = new OptimizationRunResult {
                ResidualsResult = _residualResults, SimulationResults = new List <DataRepository> {
                    _simulationData
                }
            };
            _parameterIdentificationRunResult.BestResult = _optimizationRunResult;

            sut.InitializeAnalysis(_predictedVsObservedChart);
        }
コード例 #4
0
        protected override void Context()
        {
            _identification       = A.Fake <ParameterIdentification>();
            _dimensionFactory     = A.Fake <IDimensionFactory>();
            _displayUnitRetriever = A.Fake <IDisplayUnitRetriever>();

            A.CallTo(_dimensionFactory).WithReturnType <IDimension>().ReturnsLazily(x => x.Arguments.Get <IWithDimension>(0).Dimension);

            _predictedVsObservedChart = new ParameterIdentificationPredictedVsObservedChart().WithAxes();

            _observedConcentrationData      = DomainHelperForSpecs.ObservedData();
            _concentrationObservationColumn = _observedConcentrationData.FirstDataColumn();

            _simulationData   = DomainHelperForSpecs.IndividualSimulationDataRepositoryFor("Simulation");
            _simulationColumn = _simulationData.FirstDataColumn();

            _fractionObservedData                = DomainHelperForSpecs.ObservedData();
            _fractionObservationColumn           = _fractionObservedData.FirstDataColumn();
            _fractionObservationColumn.Dimension = DomainHelperForSpecs.NoDimension();

            sut = new PredictedVsObservedChartService(_dimensionFactory, _displayUnitRetriever);
        }
コード例 #5
0
 public void AddCurvesFor(IEnumerable <DataColumn> observationColumns, DataColumn calculationColumn, ParameterIdentificationPredictedVsObservedChart chart, Action <DataColumn, Curve> action = null)
 {
     observationColumns.Each(observationColumn => plotPredictedVsObserved(observationColumn, calculationColumn, chart, action));
 }
コード例 #6
0
 private void adjustAxes(DataColumn calculationColumn, ParameterIdentificationPredictedVsObservedChart chart)
 {
     chart.AxisBy(AxisTypes.Y).UnitName = _displayUnitRetriever.PreferredUnitFor(calculationColumn).Name;
 }
コード例 #7
0
        private void addResultCurves(DataColumn observationColumn, DataColumn simulationResultColumn, ParameterIdentificationPredictedVsObservedChart chart, Action <DataColumn, Curve> action)
        {
            var curve = new Curve {
                Name = Captions.ParameterIdentification.CreateCurveNameForPredictedVsObserved(observationColumn.Repository.Name, simulationResultColumn.Repository.Name)
            };

            curve.SetxData(observationColumn, _dimensionFactory);
            curve.SetyData(simulationResultColumn, _dimensionFactory);
            adjustResultCurveDisplay(curve);
            action?.Invoke(simulationResultColumn, curve);
            chart.AddCurve(curve);
        }
コード例 #8
0
 private void plotPredictedVsObserved(DataColumn observationColumn, DataColumn calculationColumn, ParameterIdentificationPredictedVsObservedChart chart, Action <DataColumn, Curve> action)
 {
     if (chart.FindCurveWithSameData(observationColumn, calculationColumn) == null)
     {
         addResultCurves(observationColumn, calculationColumn, chart, action);
     }
     adjustAxes(calculationColumn, chart);
 }
コード例 #9
0
        private IEnumerable <DataRepository> addIdentityCurves(IEnumerable <DataColumn> observationColumns, ParameterIdentificationPredictedVsObservedChart chart)
        {
            var dataColumns = observationColumns.ToList();
            //We are using display name here as it is the only way to identify unique merge dimensions
            var uniqueDimensions = dataColumns.Select(dataColumn => _dimensionFactory.MergedDimensionFor(dataColumn)).DistinctBy(dimension => dimension.DisplayName);

            foreach (var mergedDimension in uniqueDimensions)
            {
                var identityRepository = createIdentityRepository(dataColumns, mergedDimension);
                if (identityRepository == null)
                {
                    continue;
                }

                chart.AddCurvesFor(identityRepository, x => x.Name, _dimensionFactory, (column, curve) => curve.UpdateMarkerCurve(Identity));
                yield return(identityRepository);
            }
        }
コード例 #10
0
        public IReadOnlyList <DataRepository> AddIdentityCurves(IEnumerable <DataColumn> observationColumns, ParameterIdentificationPredictedVsObservedChart chart)
        {
            var identityCurves = addIdentityCurves(observationColumns, chart).ToList();

            chart.UpdateAxesVisibility();
            return(identityCurves);
        }