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); }); }
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); }
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); }
public void AddCurvesFor(IEnumerable <DataColumn> observationColumns, DataColumn calculationColumn, ParameterIdentificationPredictedVsObservedChart chart, Action <DataColumn, Curve> action = null) { observationColumns.Each(observationColumn => plotPredictedVsObserved(observationColumn, calculationColumn, chart, action)); }
private void adjustAxes(DataColumn calculationColumn, ParameterIdentificationPredictedVsObservedChart chart) { chart.AxisBy(AxisTypes.Y).UnitName = _displayUnitRetriever.PreferredUnitFor(calculationColumn).Name; }
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); }
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); }
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); } }
public IReadOnlyList <DataRepository> AddIdentityCurves(IEnumerable <DataColumn> observationColumns, ParameterIdentificationPredictedVsObservedChart chart) { var identityCurves = addIdentityCurves(observationColumns, chart).ToList(); chart.UpdateAxesVisibility(); return(identityCurves); }