Esempio n. 1
0
        protected override void Context()
        {
            _globalPKAnalysisPresenter = A.Fake <IGlobalPKAnalysisPresenter>();
            _concentrationDim          = A.Fake <IDimension>();
            _timeDim         = A.Fake <IDimension>();
            _view            = A.Fake <IIndividualPKAnalysisView>();
            _pkaAnalysisTask = A.Fake <IPKAnalysisTask>();
            _simulation      = A.Fake <IndividualSimulation>();
            _simulations     = new List <Simulation>();
            _simulations.Add(_simulation);
            _exportTask = A.Fake <IPKAnalysisExportTask>();
            _individualPKAnalysisToDTOMapper = A.Fake <IIndividualPKAnalysisToPKAnalysisDTOMapper>();
            _pkParameterRepository           = A.Fake <IPKParameterRepository>();
            ;
            var dataRepository = new DataRepository();

            _baseGrid = new BaseGrid("Base", _timeDim);
            _col1     = new DataColumn {
                DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5), Dimension = _concentrationDim
            };
            _col2 = new DataColumn {
                Dimension = _concentrationDim, DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5)
            };
            _col3 = new DataColumn {
                Dimension = _concentrationDim, DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5)
            };
            dataRepository.Add(_col1);
            dataRepository.Add(_col2);
            _simulation.DataRepository = dataRepository;
            var curve1 = A.Fake <Curve>();

            A.CallTo(() => curve1.yData).Returns(_col1);
            A.CallTo(() => curve1.xData).Returns(_baseGrid);

            var curve2 = A.Fake <Curve>();

            A.CallTo(() => curve2.yData).Returns(_col2);
            A.CallTo(() => curve2.xData).Returns(_baseGrid);

            var curve3 = A.Fake <Curve>();

            A.CallTo(() => curve3.yData).Returns(_col3);
            A.CallTo(() => curve3.xData).Returns(_col1);

            _curves = new List <Curve> {
                curve1, curve2, curve3
            };
            _allPKAnalysis = new List <Tuple <DataColumn, PKAnalysis> >();
            _pkAnalysis1   = createPKAnalysis();
            _pkAnalysis2   = createPKAnalysis();
            _allPKAnalysis.Add(new Tuple <DataColumn, PKAnalysis>(_col1, _pkAnalysis1));
            _allPKAnalysis.Add(new Tuple <DataColumn, PKAnalysis>(_col2, _pkAnalysis2));
            _allGlobalPKParameters = new List <IParameter>();
            A.CallTo(_pkaAnalysisTask).WithReturnType <IEnumerable <Tuple <DataColumn, PKAnalysis> > >().Returns(_allPKAnalysis);
            A.CallTo(_pkaAnalysisTask).WithReturnType <IEnumerable <IParameter> >().Returns(_allGlobalPKParameters);

            _presenterSettingsTask = A.Fake <IPresentationSettingsTask>();
            sut = new IndividualPKAnalysisPresenter(_view, _pkaAnalysisTask, _exportTask, _globalPKAnalysisPresenter,
                                                    _individualPKAnalysisToDTOMapper, _pkParameterRepository, _presenterSettingsTask);
        }
        protected override void Context()
        {
            _editObservedDataTask = A.Fake <IEditObservedDataTask>();
            _view = A.Fake <IDataRepositoryDataView>();
            _dataRepositoryTask = A.Fake <IDataRepositoryExportTask>();
            _commandCollector   = A.Fake <ICommandCollector>();
            sut = new DataRepositoryDataPresenter(_view, _dataRepositoryTask, _editObservedDataTask);
            sut.InitializeWith(_commandCollector);

            //common setup
            _dataRepository = new DataRepository();
            _dataTable      = new DataTable();
            A.CallTo(() => _dataRepositoryTask.ToDataTable(_dataRepository, A <DataColumnExportOptions> ._)).Returns(new[] { _dataTable });

            var col = _dataTable.AddColumn <float>("test");

            col.ExtendedProperties.Add(Constants.DATA_REPOSITORY_COLUMN_ID, "col");
            _baseGrid = new BaseGrid("base", "base", Constants.Dimension.NO_DIMENSION)
            {
                Values = new ArraySegment <float>()
            };
            _dim = A.Fake <IDimension>();
            _col = new DataColumn("col", "col", _dim, _baseGrid)
            {
                Values = new ArraySegment <float>()
            };
            _dataRepository.Add(_baseGrid);
            _dataRepository.Add(_col);
        }
Esempio n. 3
0
        protected override Task Context()
        {
            _dataColumnMapper       = A.Fake <DataColumnMapper>();
            _extendedPropertyMapper = A.Fake <ExtendedPropertyMapper>();
            sut = new DataRepositoryMapper(_extendedPropertyMapper, _dataColumnMapper);

            _dataRepository = DomainHelperForSpecs.ObservedData();
            _dataColumn     = _dataRepository.ObservationColumns().First();
            _relatedColumn  = new DataColumn("related", DomainHelperForSpecs.NoDimension(), _dataRepository.BaseGrid)
            {
                Values   = new[] { 0f, 0f, 0f },
                DataInfo = { Origin = ColumnOrigins.ObservationAuxiliary }
            };
            _dataColumn.AddRelatedColumn(_relatedColumn);
            _dataRepository.Add(_relatedColumn);
            _dataRepository.Description = "description";
            _dataRepository.Name        = "thename";
            _extendedProperty           = new ExtendedProperty <string> {
                Name = "Name"
            };
            _dataRepository.ExtendedProperties.Add(_extendedProperty);
            _dataColumnSnapshot       = new Snapshots.DataColumn();
            _extendedPropertySnapshot = new Snapshots.ExtendedProperty();
            _baseGridSnapshot         = new Snapshots.DataColumn();
            A.CallTo(() => _dataColumnMapper.MapToSnapshot(_dataColumn)).Returns(_dataColumnSnapshot);
            A.CallTo(() => _extendedPropertyMapper.MapToSnapshot(_extendedProperty)).Returns(_extendedPropertySnapshot);
            A.CallTo(() => _extendedPropertyMapper.MapToModel(_extendedPropertySnapshot, A <SnapshotContext> ._)).Returns(_extendedProperty);
            A.CallTo(() => _dataColumnMapper.MapToSnapshot(_dataRepository.BaseGrid)).Returns(_baseGridSnapshot);

            return(Task.FromResult(true));
        }
 private void updateColumnProperties(DataColumn sourceColumn, DataColumn targetColumn)
 {
     targetColumn.QuantityInfo = sourceColumn.QuantityInfo?.Clone();
     targetColumn.DataInfo     = sourceColumn.DataInfo?.Clone();
     targetColumn.Values       = sourceColumn.Values;
     targetColumn.IsInternal   = sourceColumn.IsInternal;
 }
 private void addBaseGridToRepository(DataRepository dataRepository, DataColumn baseGrid)
 {
     if (isAlreadyCloned(baseGrid))
     {
         return;
     }
     dataRepository.Add(cloneBaseGrid(baseGrid));
 }
        private BaseGrid cloneBaseGrid(DataColumn baseGridToClone)
        {
            var newBaseGrid = new BaseGrid(baseGridToClone.Name, baseGridToClone.Dimension);

            updateColumnProperties(baseGridToClone, newBaseGrid);
            _idMap.Add(baseGridToClone.Id, newBaseGrid.Id);
            return(newBaseGrid);
        }
        public DataColumn CloneColumn(DataColumn sourceColumn, BaseGrid clonedBaseGrid)
        {
            var newColumn = new DataColumn(sourceColumn.Name, sourceColumn.Dimension, clonedBaseGrid);

            updateColumnProperties(sourceColumn, newColumn);
            _idMap.Add(sourceColumn.Id, newColumn.Id);
            return(newColumn);
        }
        private DataTable createTableFor(string tableName, DataColumn baseGridColumn, IEnumerable <DataColumn> columnsToExport, Func <DataColumn, string> columnNameRetriever, Func <DataColumn, IDimension> dimensionRetriever, bool formatOutput, bool useDisplayUnit)
        {
            var dataTable = new DataTable(tableName);

            //user string because we want to export the unit
            var allColumns = columnsToExport.Where(col => !col.IsBaseGrid())
                             .Where(x => x.BaseGrid == baseGridColumn).ToList();

            moveDrugColumnsFirst(allColumns);

            allColumns.Insert(0, baseGridColumn);
            var cacheName       = retrieveUniqueNameForColumns(allColumns, columnNameRetriever);
            var cacheDimensions = retrieveDimensionsFor(allColumns, dimensionRetriever);

            allColumns.Each(x =>
            {
                var column = dataTable.Columns.Add(cacheName[x], formatOutput ? typeof(string) : typeof(float));
                column.ExtendedProperties.Add(Constants.DATA_REPOSITORY_COLUMN_ID, x.Id);
            });

            //add units information
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                var col        = dataTable.Columns[i];
                var dataColumn = allColumns[i];
                var dimension  = cacheDimensions[dataColumn];
                var unit       = unitFor(dimension, dataColumn, useDisplayUnit);

                if (!string.IsNullOrWhiteSpace(unit.Name))
                {
                    col.ColumnName = $"{col.ColumnName} [{unit.Name}]";
                }
            }

            for (int i = 0; i < baseGridColumn.Values.Count; i++)
            {
                var row = dataTable.NewRow();
                for (int j = 0; j < allColumns.Count; j++)
                {
                    var    columnToExport = allColumns[j];
                    var    dimension      = cacheDimensions[columnToExport];
                    var    unit           = unitFor(dimension, columnToExport, useDisplayUnit);
                    double value          = dimension.BaseUnitValueToUnitValue(unit, columnToExport.Values[i]);

                    if (formatOutput)
                    {
                        row[j] = _numericFormatter.Format(value);
                    }
                    else
                    {
                        row[j] = value;
                    }
                }
                dataTable.Rows.Add(row);
            }

            return(dataTable);
        }
        private Unit unitFor(IDimension dimension, DataColumn column, bool useDisplayUnit)
        {
            if (useDisplayUnit)
            {
                return(dimension.UnitOrDefault(column.DataInfo.DisplayUnitName));
            }

            return(dimension.BaseUnit);
        }
Esempio n. 10
0
        public void UpdateMolWeight(DataColumn column, IQuantity quantity, IModel model)
        {
            var molWeight = model.MolWeightFor(quantity);

            if (molWeight != null)
            {
                column.DataInfo.MolWeight = molWeight;
            }
        }
Esempio n. 11
0
        private DataTable createTableFor(
            string tableName,
            DataColumn baseGridColumn,
            IEnumerable <DataColumn> columnsToExport,
            Func <DataColumn, string> columnNameRetriever,
            Func <DataColumn, IDimension> dimensionRetriever,
            bool useDisplayUnit,
            Type columnType,
            Func <double, object> valueFunc)
        {
            var dataTable = new DataTable(tableName);

            var allColumns = sortColumnsForExport(columnsToExport.Where(x => !x.IsBaseGrid() && x.BaseGrid == baseGridColumn));


            allColumns.Insert(0, baseGridColumn);
            var cacheName       = retrieveUniqueNameForColumns(allColumns, columnNameRetriever);
            var cacheDimensions = retrieveDimensionsFor(allColumns, dimensionRetriever);

            allColumns.Each(x =>
            {
                var column = dataTable.Columns.Add(cacheName[x], columnType);
                column.ExtendedProperties.Add(Constants.DATA_REPOSITORY_COLUMN_ID, x.Id);
            });

            //add units information
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                var col        = dataTable.Columns[i];
                var dataColumn = allColumns[i];
                var dimension  = cacheDimensions[dataColumn];
                var unit       = unitFor(dimension, dataColumn, useDisplayUnit);

                if (!string.IsNullOrWhiteSpace(unit.Name))
                {
                    col.ColumnName = $"{col.ColumnName} [{unit.Name}]";
                }
            }

            for (int i = 0; i < baseGridColumn.Values.Count; i++)
            {
                var row = dataTable.NewRow();
                for (int j = 0; j < allColumns.Count; j++)
                {
                    var columnToExport = allColumns[j];
                    var dimension      = cacheDimensions[columnToExport];
                    var unit           = unitFor(dimension, columnToExport, useDisplayUnit);
                    var value          = dimension.BaseUnitValueToUnitValue(unit, columnToExport.Values[i]);
                    row[j] = valueFunc(value);
                }

                dataTable.Rows.Add(row);
            }

            return(dataTable);
        }
Esempio n. 12
0
 protected override void Context()
 {
     base.Context();
     _col1 = new DataColumn("col2", _mass, _baseGrid1)
     {
         Values = new float[] { 10, 20, 30 }
     };
     _dataRepository.Name = "aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbb";
     _dataRepository.Add(_col1);
 }
Esempio n. 13
0
 protected override void Context()
 {
     base.Context();
     NumericFormatterOptions.Instance.DecimalPlace = 2;
     _col1 = new DataColumn("col1", _mass, _baseGrid1)
     {
         Values = new float[] { 0.11111f, 0.222222f, 0.33333333f }
     };
     _dataRepository.Add(_col1);
 }
        private void updateRelateColumnValue(DataRow row, DataColumn dataColumn, int index)
        {
            if (dataColumn == null)
            {
                return;
            }

            var dimension = _dimensionFactory.MergedDimensionFor(dataColumn);

            row[dataColumn.Name] = _reportingHelper.ConvertToDisplayUnit(dimension.Unit(dataColumn.DataInfo.DisplayUnitName), dimension, dataColumn.Values[index]);
        }
Esempio n. 15
0
        private static string tableNameFrom(DataColumn baseGrid)
        {
            const string defaultTableName = "Table";
            var          tableName        = baseGrid.Repository != null ? baseGrid.Repository.Name : defaultTableName;

            if (string.IsNullOrEmpty(tableName))
            {
                tableName = defaultTableName;
            }

            return(new string(FileHelper.RemoveIllegalCharactersFrom(tableName).Take(Constants.MAX_NUMBER_OF_CHAR_IN_TABLE_NAME).ToArray()));
        }
Esempio n. 16
0
        private BaseGrid activeBaseGrid(DataColumn xData, DataColumn yData)
        {
            if (Curve.InterpolationMode == InterpolationModes.xLinear)
            {
                return(xData.BaseGrid);
            }

            if (Curve.InterpolationMode == InterpolationModes.yLinear)
            {
                return(yData.BaseGrid);
            }

            throw new ArgumentException("InterpolationMode = " + Curve.InterpolationMode);
        }
        protected override void Context()
        {
            base.Context();
            _baseGrid1.DisplayUnit = _time.Unit("h");
            _baseGrid1.Values      = new List <float> {
                4.98f
            };                                        //0.083 h
            _col1 = new DataColumn("col1", _mass, _baseGrid1)
            {
                Values = new[] { 12.487f }
            };

            _dataRepository.Add(_col1);
        }
Esempio n. 18
0
        protected override async Task Context()
        {
            await base.Context();

            _snapshot = await sut.MapToSnapshot(_dataRepository);

            _baseGrid            = new BaseGrid("baseGrid", DomainHelperForSpecs.TimeDimensionForSpecs());
            _mappedDataColumn    = new DataColumn("DataColumn", DomainHelperForSpecs.ConcentrationDimensionForSpecs(), _baseGrid);
            _mappedRelatedColumn = new DataColumn("RelatedColumn", DomainHelperForSpecs.ConcentrationDimensionForSpecs(), _baseGrid);
            _mappedDataColumn.AddRelatedColumn(_mappedRelatedColumn);

            A.CallTo(() => _dataColumnMapper.MapToModel(_snapshot.BaseGrid, A <SnapshotContextWithDataRepository> ._)).Returns(_baseGrid);
            A.CallTo(() => _dataColumnMapper.MapToModel(_snapshot.Columns.First(), A <SnapshotContextWithDataRepository> ._)).Returns(_mappedDataColumn);
        }
        private void addMolWeight(DataColumn col, System.Data.DataColumn column)
        {
            if (col.DataInfo.MolWeight == null)
            {
                return;
            }

            var dimension   = _dimensionFactory.Dimension(AppConstants.Parameters.MOLECULAR_WEIGHT);
            var displayUnit = _reportingHelper.GetDisplayUnitFor(dimension);

            column.SetNotes(new[]
            {
                string.Format(Constants.PROPERTY_PROMPT_FORMAT, Constants.MOLECULE_WEIGHT,
                              $"{_reportingHelper.ConvertToDisplayUnit(displayUnit, dimension, (float) col.DataInfo.MolWeight)} {_reportingHelper.GetDisplayUnitFor(displayUnit, dimension)}")
            });
        }
Esempio n. 20
0
        protected override void Context()
        {
            base.Context();
            _col1 = new DataColumn("col1", _mass, _baseGrid1)
            {
                Values   = new float[] { 10, 20, 30 },
                DataInfo = { Origin = ColumnOrigins.Observation }
            };
            _col2 = new DataColumn("col2", _mass, _baseGrid1)
            {
                Values   = new float[] { 100, 200, 300 },
                DataInfo = { AuxiliaryType = AuxiliaryType.ArithmeticStdDev, Origin = ColumnOrigins.ObservationAuxiliary }
            };

            _col1.AddRelatedColumn(_col2);
            _dataRepository.Add(_col2);
            _dataRepository.Add(_col1);
        }
        protected override bool AddRelatedValuesToRow(DataRow row, DataColumn yData, IDimension yDimension, Unit yUnit, double y, float baseValue)
        {
            var stdDev = Curve.yData.GetValue(baseValue);

            if (!IsValidValue(stdDev) || stdDev == 0)
            {
                stdDev = 1;
            }

            if (!IsValidValue(y / stdDev))
            {
                return(false);
            }

            row[LOW]  = y / stdDev;
            row[HIGH] = y * stdDev;
            return(true);
        }
Esempio n. 22
0
        protected override void Context()
        {
            base.Context();
            _fileName   = "file";
            _dataTable1 = new DataTable();
            _dataTable2 = new DataTable();
            var baseGrid = new BaseGrid("time", A.Fake <IDimension>());

            _col1   = new DataColumnn("col1", A.Fake <IDimension>(), baseGrid);
            _col2   = new DataColumnn("col2", A.Fake <IDimension>(), baseGrid);
            _global = new GlobalPKAnalysis();

            _sim1 = A.Fake <Simulation>().WithName("Sim");
            A.CallTo(_dialogCreator).WithReturnType <string>().Returns(_fileName);

            A.CallTo(() => _dataRepositoryTask.ToDataTable(A <IEnumerable <DataColumnn> > ._, A <Func <DataColumnn, string> > ._, false)).Returns(new[] { _dataTable1, _dataTable2 });
            A.CallTo(() => _dataRepositoryTask.ExportToExcel(A <IEnumerable <DataTable> > ._, _fileName, true))
            .Invokes(x => _dataTables = x.GetArgument <IEnumerable <DataTable> >(0));
        }
Esempio n. 23
0
        protected override bool AddRelatedValuesToRow(DataRow row, DataColumn yData, IDimension yDimension, Unit yUnit, double y, float baseValue)
        {
            var stdDev = yDimension.BaseUnitValueToUnitValue(yUnit, Curve.yData.GetValue(baseValue));

            if (!IsValidValue(stdDev))
            {
                stdDev = 0;
            }

            if (!IsValidYValue(y - stdDev))
            {
                return(false);
            }

            row[LOW]  = y - stdDev;
            row[HIGH] = y + stdDev;

            return(true);
        }
Esempio n. 24
0
        private DataColumn addColumnToRepository(DataRepository dataRepository, DataColumn sourceColumn)
        {
            if (isAlreadyCloned(sourceColumn))
            {
                return(dataRepository[idOfCloneFor(sourceColumn)]);
            }

            var baseGridColumn = dataRepository[idOfCloneFor(sourceColumn.BaseGrid)].DowncastTo <BaseGrid>();

            var newColumn = CloneColumn(sourceColumn, baseGridColumn);

            dataRepository.Add(newColumn);

            foreach (var relatedColumn in sourceColumn.RelatedColumns)
            {
                newColumn.AddRelatedColumn(addColumnToRepository(dataRepository, relatedColumn));
            }

            return(newColumn);
        }
        private DataColumn createRelatedColumnFor(DataTable dataTable, DataColumn dataColumn, AuxiliaryType auxiliaryType, string caption)
        {
            if (!dataColumn.ContainsRelatedColumn(auxiliaryType))
            {
                return(null);
            }

            var realatedColumn = dataColumn.GetRelatedColumn(AuxiliaryType.ArithmeticStdDev);

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

            var errCol = dataTable.AddColumn <float>(realatedColumn.Name);

            errCol.SetUnit(realatedColumn.DataInfo.DisplayUnitName);
            errCol.SetNotes(new[] { caption });
            return(realatedColumn);
        }
Esempio n. 26
0
        protected override bool AddRelatedValuesToRow(DataRow row, DataColumn yData, IDimension yDimension, Unit yUnit, double y, float baseValue)
        {
            var relatedColumn = yData.GetRelatedColumn(AuxiliaryType.GeometricStdDev);
            var stdDev        = relatedColumn.GetValue(baseValue);

            if (!IsValidValue(stdDev) || stdDev == 0)
            {
                stdDev = 1;
            }

            if (!IsValidYValue(y / stdDev))
            {
                return(false);
            }

            row[LOW]  = y / stdDev;
            row[HIGH] = y * stdDev;
            row[Y2]   = y;

            return(true);
        }
Esempio n. 27
0
        protected override bool AddRelatedValuesToRow(DataRow row, DataColumn yData, IDimension yDimension, Unit yUnit, double y, float baseValue)
        {
            var relatedColumn = yData.GetRelatedColumn(AuxiliaryType.ArithmeticStdDev);
            var stdDev        = yDimension.BaseUnitValueToUnitValue(yUnit, relatedColumn.GetValue(baseValue));

            if (!IsValidValue(stdDev))
            {
                stdDev = 0;
            }

            row[HIGH] = y + stdDev;
            row[LOW]  = y - stdDev;
            row[Y2]   = y;

            if (!IsValidYValue(y - stdDev))
            {
                row[LOW] = y;
            }

            return(true);
        }
Esempio n. 28
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 float convertCellToFloat(int sourceRow, DataColumn observationColumn)
 {
     return(observationColumn.Values[sourceRow]);
 }