public override Task <ModelOutputMapping> MapToModel(SnapshotOutputMapping snapshot, ParameterIdentificationContext context)
        {
            var outputSelection = outputSelectionFrom(snapshot.Path, context.Project);

            if (outputSelection == null)
            {
                return(Task.FromResult <ModelOutputMapping>(null));
            }

            var observedData         = context.Project.AllObservedData.FindByName(snapshot.ObservedData);
            var weightedObservedData = new WeightedObservedData(observedData);

            if (snapshot.Weights != null)
            {
                updateWeights(weightedObservedData.Weights, snapshot.Weights);
            }

            var outputMapping = new ModelOutputMapping
            {
                Scaling              = snapshot.Scaling,
                Weight               = ModelValueFor(snapshot.Weight, Constants.DEFAULT_WEIGHT),
                OutputSelection      = outputSelection,
                WeightedObservedData = weightedObservedData
            };

            return(Task.FromResult(outputMapping));
        }
Beispiel #2
0
 private void raiseObservedDataUnmappedFor(WeightedObservedData weightedObservedData)
 {
     if (weightedObservedData != null)
     {
         ObservedDataUnmapped(this, new ObservedDataEventArgs(weightedObservedData));
     }
 }
 private DataColumn createWeightColumn(BaseGrid baseGrid, WeightedObservedData weightedObservedData)
 {
     return(new DataColumn(Captions.ParameterIdentification.Weight, _dimensionFactory.NoDimension, baseGrid)
     {
         Values = weightedObservedData.Weights
     });
 }
        public DataTable MapFrom(WeightedObservedData weightedObservedData)
        {
            var columns    = weightedObservedData.ObservedData.ToList();
            var dataColumn = createWeightColumn(weightedObservedData.ObservedData.BaseGrid, weightedObservedData);

            columns.Add(dataColumn);
            return(_dataRepositoryTask.ToDataTable(columns, forceColumnTypeAsObject: true).First());
        }
        private IParameterIdentificationWeightedObservedDataPresenter edit(WeightedObservedData weightedObservedData)
        {
            var observedDataPresenter = _allObservedDataPresenters[weightedObservedData];

            observedDataPresenter?.Edit(weightedObservedData);

            return(observedDataPresenter);
        }
Beispiel #6
0
        protected override void Context()
        {
            base.Context();
#pragma warning disable 618
            _weightedObservedData = new WeightedObservedData();
#pragma warning restore 618
            _outputMapping.WeightedObservedData = _weightedObservedData;
        }
 protected override void Context()
 {
     sut                = new ParameterIdentification();
     _observedData      = new WeightedObservedData(DomainHelperForSpecs.ObservedData());
     _simulation        = A.Fake <ISimulation>().WithName("Sim").WithId("Id");
     _quantitySelection = new QuantitySelection("Organism|Liver|Cell|Asprin|Concentration", QuantityType.Drug);
     _outputMapping     = new OutputMapping {
         WeightedObservedData = _observedData, OutputSelection = new SimulationQuantitySelection(_simulation, _quantitySelection)
     };
 }
        protected override void Context()
        {
            base.Context();
            _outputMapping1.WeightedObservedData = null;
            _parameterIdentification.AddOutputMapping(_outputMapping1);
            _parameterIdentification.AddOutputMapping(_outputMapping2);
            sut.EditParameterIdentification(_parameterIdentification);

            sut.ObservedDataMapped   += (o, e) => { _eventObservedData = e.WeightedObservedData; };
            sut.ObservedDataUnmapped += (o, e) => { _unmappedRaised = true; };
        }
        public void RemoveObservedData(WeightedObservedData weightedObservedData)
        {
            var presenter = _allObservedDataPresenters[weightedObservedData];

            if (presenter == null)
            {
                return;
            }

            _allObservedDataPresenters.Remove(weightedObservedData);
            removeObservedDataPresenter(presenter);
        }
        public void Edit(WeightedObservedData weightedObservedData)
        {
            if (_alreadyEditing)
            {
                return;
            }

            _dataPresenter.EditObservedData(weightedObservedData);
            _chartPresenter.PlotObservedData(weightedObservedData);
            _chartPresenter.LogLinSelectionEnabled = true;
            _chartPresenter.HotTracked             = hotTracked;
            Caption         = weightedObservedData.DisplayName;
            _alreadyEditing = true;
        }
        protected override void Context()
        {
            _simpleChartPresenter = A.Fake <ISimpleChartPresenter>();
            _weightedDataRepositoryDataPresenter = A.Fake <IWeightedDataRepositoryDataPresenter>();
            _view = A.Fake <IParameterIdentificationWeightedObservedDataView>();
            var dataRepository = new DataRepository {
                Name = "weightedObservedData"
            };

            dataRepository.Add(new BaseGrid("name", DomainHelperForSpecs.TimeDimensionForSpecs()));
            _weightedObservedData = new WeightedObservedData(dataRepository);

            sut = new ParameterIdentificationWeightedObservedDataPresenter(_view, _weightedDataRepositoryDataPresenter, _simpleChartPresenter);
        }
        public void SelectObservedData(WeightedObservedData weightedObservedData)
        {
            if (IsLatched)
            {
                return;
            }

            var observedDataPresenter = edit(weightedObservedData);

            if (observedDataPresenter == null)
            {
                return;
            }

            _view.SelectObservedDataView(observedDataPresenter.View);
        }
Beispiel #13
0
        private float[] weightsFrom(WeightedObservedData weightedObservedData)
        {
            var weights = weightedObservedData?.Weights;

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

            if (weights.All(x => ValueComparer.AreValuesEqual(x, Constants.DEFAULT_WEIGHT)))
            {
                return(null);
            }

            return(weights);
        }
Beispiel #14
0
        protected override void Context()
        {
            _eventPublisher        = A.Fake <IEventPublisher>();
            _view                  = A.Fake <IParameterIdentificationWeightedObservedDataCollectorView>();
            _applicationController = A.Fake <IApplicationController>();
            sut = new ParameterIdentificationWeightedObservedDataCollectorPresenter(_view, _applicationController, _eventPublisher);

            _parameterIdentification = new ParameterIdentification();
            _weightedObservedData    = new WeightedObservedData(DomainHelperForSpecs.ObservedData());
            _outputMapping           = new OutputMapping {
                WeightedObservedData = _weightedObservedData
            };
            _parameterIdentification.AddOutputMapping(_outputMapping);

            _presenter = A.Fake <IParameterIdentificationWeightedObservedDataPresenter>();
            A.CallTo(() => _applicationController.Start <IParameterIdentificationWeightedObservedDataPresenter>()).Returns(_presenter);
        }
        public void AddObservedData(WeightedObservedData weightedObservedData)
        {
            // You can get a null weighted observed data when a mapping has not been assigned observed data yet or if mapping is corrupted
            if (weightedObservedData?.ObservedData == null)
            {
                return;
            }

            if (_allObservedDataPresenters.Contains(weightedObservedData))
            {
                return;
            }

            var presenter = _applicationController.Start <IParameterIdentificationWeightedObservedDataPresenter>();

            _allObservedDataPresenters.Add(weightedObservedData, presenter);
            edit(weightedObservedData);
            _view.AddObservedDataView(presenter.View);
            SelectObservedData(weightedObservedData);
        }
        public void ObservedDataSelectionChanged(OutputMappingDTO dto, DataRepository newObservedData, DataRepository oldObservedData)
        {
            var allOutputsUsingObservedData = _allOutputMappingDTOs.Where(x => Equals(x.ObservedData, newObservedData)).Except(new[] { dto }).ToList();

            if (observedDataAlreadySelectedForSameOutput(dto.Output, newObservedData))
            {
                dto.ObservedData = oldObservedData;
                View.CloseEditor();
                throw new CannotSelectTheObservedDataMoreThanOnceException(newObservedData);
            }

            var weightedObservedData = new WeightedObservedData(newObservedData)
            {
                Id = nextUniqueIdFor(allOutputsUsingObservedData)
            };

            raiseObservedDataUnmappedFor(dto.WeightedObservedData);
            dto.Mapping.WeightedObservedData = weightedObservedData;
            View.CloseEditor();
            raiseObservedDataMappedFor(dto.WeightedObservedData);
        }
Beispiel #17
0
        protected override void Context()
        {
            _dataRepositoryTask = A.Fake <IDataRepositoryTask>();
            _dimensionFactory   = A.Fake <IDimensionFactory>();
            sut = new WeightedDataRepositoryToDataTableMapper(_dataRepositoryTask, _dimensionFactory);

            var baseGrid = new BaseGrid("name", _dimensionFactory.NoDimension)
            {
                Values = new[] { 0.0f }
            };
            var dataColumn = new DataColumn {
                Values = new[] { 0.0f }
            };

            _dataRepository = new DataRepository {
                baseGrid, dataColumn
            };

            _weightedObservedData = new WeightedObservedData(_dataRepository);

            A.CallTo(() => _dataRepositoryTask.ToDataTable(A <IEnumerable <DataColumn> > ._, A <bool> ._, A <bool> ._, A <bool> ._)).Returns(new[] { new DataTable() });
        }
        protected override void Context()
        {
            _view             = A.Fake <IWeightedDataRepositoryDataView>();
            _dimensionFactory = A.Fake <IDimensionFactory>();
            _weightedDataRepositoryToDataTableMapper = A.Fake <IWeightedDataRepositoryToDataTableMapper>();
            var baseGrid = new BaseGrid("name", _dimensionFactory.NoDimension)
            {
                Values = new[] { 0.0f }
            };
            var dataColumn = new DataColumn {
                Values = new[] { 0.0f }
            };

            _dataRepository = new DataRepository {
                baseGrid, dataColumn
            };

            _weightedObservedData = new WeightedObservedData(_dataRepository);

            A.CallTo(() => _weightedDataRepositoryToDataTableMapper.MapFrom(_weightedObservedData)).Returns(new DataTable());

            sut = new WeightedDataRepositoryDataPresenter(_view, _weightedDataRepositoryToDataTableMapper);
        }
 private void observedDataUnmapped(WeightedObservedData weightedObservedData)
 {
     _weightedObservedDataCollectorPresenter.RemoveObservedData(weightedObservedData);
 }
Beispiel #20
0
 private void raiseObservedDataMappedFor(WeightedObservedData weightedObservedData)
 {
     ObservedDataMapped(this, new ObservedDataEventArgs(weightedObservedData));
 }
Beispiel #21
0
 public ObservedDataEventArgs(WeightedObservedData weightedObservedData)
 {
     WeightedObservedData = weightedObservedData;
 }
 private void observedDataMapped(WeightedObservedData weightedObservedData)
 {
     _weightedObservedDataCollectorPresenter.AddObservedData(weightedObservedData);
 }
        protected override void Context()
        {
            _view = A.Fake <IParameterIdentificationOutputMappingView>();
            _observedDataRepository               = A.Fake <IObservedDataRepository>();
            _entitiesInSimulationRetriever        = A.Fake <IEntitiesInSimulationRetriever>();
            _outputMappingDTOMapper               = A.Fake <IOutputMappingToOutputMappingDTOMapper>();
            _simulationQuantitySelectionDTOMapper = A.Fake <IQuantityToSimulationQuantitySelectionDTOMapper>();
            _parameterIdentificationTask          = A.Fake <IParameterIdentificationTask>();

            sut = new ParameterIdentificationOutputMappingPresenter(_view, _entitiesInSimulationRetriever, _observedDataRepository, _outputMappingDTOMapper,
                                                                    _simulationQuantitySelectionDTOMapper, _parameterIdentificationTask);


            _observedData1           = DomainHelperForSpecs.ObservedData("Obs1").WithName("Obs1");
            _weightedObservedData1   = new WeightedObservedData(_observedData1);
            _observedData2           = DomainHelperForSpecs.ObservedData("Obs2").WithName("Obs2");
            _weightedObservedData2   = new WeightedObservedData(_observedData2);
            _parameterIdentification = new ParameterIdentification();
            _simulation1             = A.Fake <ISimulation>().WithId("Id1");
            _simulation2             = A.Fake <ISimulation>().WithId("Id2");
            _usedObservedData1       = new UsedObservedData {
                Id = "Obs1"
            };
            _usedObservedData2 = new UsedObservedData {
                Id = "Obs2"
            };
            A.CallTo(() => _observedDataRepository.All()).Returns(new[] { _observedData1, _observedData2 });

            A.CallTo(() => _observedDataRepository.AllObservedDataUsedBy(_simulation1)).Returns(new[] { _observedData2 });
            A.CallTo(() => _observedDataRepository.AllObservedDataUsedBy(_simulation2)).Returns(new[] { _observedData1, _observedData2 });

            _parameterIdentification.AddSimulation(_simulation1);
            _parameterIdentification.AddSimulation(_simulation2);

            _quantity1 = A.Fake <IQuantity>();
            _quantity2 = A.Fake <IQuantity>();
            _output1   = A.Fake <SimulationQuantitySelectionDTO>();
            A.CallTo(() => _output1.Simulation).Returns(_simulation1);
            _output2 = A.Fake <SimulationQuantitySelectionDTO>();
            A.CallTo(() => _output2.Simulation).Returns(_simulation2);
            A.CallTo(() => _entitiesInSimulationRetriever.OutputsFrom(_simulation1)).Returns(new PathCache <IQuantity>(new EntityPathResolverForSpecs())
            {
                { "AA", _quantity1 }
            });
            A.CallTo(() => _entitiesInSimulationRetriever.OutputsFrom(_simulation2)).Returns(new PathCache <IQuantity>(new EntityPathResolverForSpecs())
            {
                { "BB", _quantity2 }
            });
            A.CallTo(() => _simulationQuantitySelectionDTOMapper.MapFrom(_simulation1, _quantity1)).Returns(_output1);
            A.CallTo(() => _simulationQuantitySelectionDTOMapper.MapFrom(_simulation2, _quantity2)).Returns(_output2);

            A.CallTo(() => _view.BindTo(A <IEnumerable <OutputMappingDTO> > ._))
            .Invokes(x => _allOutputMappingDTOs = x.GetArgument <IEnumerable <OutputMappingDTO> >(0));


            sut.EditParameterIdentification(_parameterIdentification);

            _outputMapping1 = A.Fake <OutputMapping>();
            _outputMapping2 = A.Fake <OutputMapping>();

            _outputMappingDTO1 = new OutputMappingDTO(_outputMapping1)
            {
                Output = _output1
            };
            _outputMappingDTO2 = new OutputMappingDTO(_outputMapping2)
            {
                Output = _output2
            };

            A.CallTo(() => _outputMapping1.Simulation).Returns(_simulation1);
            A.CallTo(() => _outputMapping2.Simulation).Returns(_simulation2);

            A.CallTo(() => _outputMappingDTOMapper.MapFrom(_outputMapping1, A <IEnumerable <SimulationQuantitySelectionDTO> > ._)).Returns(_outputMappingDTO1);
            A.CallTo(() => _outputMappingDTOMapper.MapFrom(_outputMapping2, A <IEnumerable <SimulationQuantitySelectionDTO> > ._)).Returns(_outputMappingDTO2);
        }
 private void observedDataSelected(WeightedObservedData weightedObservedData)
 {
     _weightedObservedDataCollectorPresenter.SelectObservedData(weightedObservedData);
 }
Beispiel #25
0
 protected override void Context()
 {
     base.Context();
     _weightedObservedData = A.Fake <WeightedObservedData>();
 }
Beispiel #26
0
 public void EditObservedData(WeightedObservedData weightedObservedData)
 {
     _weightedObservedData = weightedObservedData;
     EditObservedData(weightedObservedData.ObservedData);
 }