예제 #1
0
 public DataInfo(ColumnOrigins origin, AuxiliaryType auxiliaryType, string displayUnitName, DateTime date, string source, string category, double?molWeight)
 {
     Origin             = origin;
     AuxiliaryType      = auxiliaryType;
     DisplayUnitName    = displayUnitName;
     Date               = date;
     Source             = source;
     Category           = category;
     MolWeight          = molWeight;
     ExtendedProperties = new ExtendedProperties();
 }
예제 #2
0
        private DataRepository createRepository(int numberOfCalculations, IContainer model, string repositoryName, ColumnOrigins columnOrigins, int numberOfPointsPerCalculation)
        {
            var dataRepository = new DataRepository().WithName(repositoryName);
            var nextDouble     = _random.NextDouble();
            var baseGrid       = createBaseGridWithManyPoints(dataRepository.Name, numberOfPointsPerCalculation, (x, total) => generateBaseGridWithRandomization(x, total, nextDouble));

            for (var i = 0; i < numberOfCalculations; i++)
            {
                dataRepository.Add(createPrimaryColumnFor(baseGrid, i, model, columnOrigins));
            }
            return(dataRepository);
        }
예제 #3
0
        private DataColumn createPrimaryColumnFor(BaseGrid baseGrid, int index, IContainer model, ColumnOrigins columnOrigins)
        {
            var quantity = getOrganismFromModel(model).EntityAt <IQuantity>("VenousBlood", "Plasma", "A", "Concentration");

            var column = new DataColumn($"CalculationColumn {index}", quantity.Dimension, baseGrid)
            {
                DataInfo     = new DataInfo(columnOrigins),
                QuantityInfo = Helper.CreateQuantityInfo(quantity)
            };

            var values      = new List <float>();
            var calculation = _calculations[index % _calculations.Count];

            calculation.Seed();
            baseGrid.Values.Each(x => { values.Add(calculation.PointFor(x)); });

            column.Values = values;

            return(column);
        }
예제 #4
0
        /// <summary>
        ///    Creates an auxiliary column for the data column. The <paramref name="calculateAuxiliaryValue" /> should provide a related value
        ///    for the data column value
        /// </summary>
        private DataColumn createAuxiliaryColumn(DataColumn column, int index, IContainer model, AuxiliaryType columnType, ColumnOrigins columnOrigins, Func <double, float> calculateAuxiliaryValue)
        {
            var baseGrid = column.BaseGrid;
            var quantity = getOrganismFromModel(model).EntityAt <IQuantity>("Lung", "Q");

            var values = baseGrid.Values.Select(x => calculateAuxiliaryValue(column.GetValue(x))).ToList();

            return(new DataColumn($"deviation column {index}", column.Dimension, baseGrid)
            {
                DataInfo = new DataInfo(columnOrigins, columnType, column.Dimension.DefaultUnitName, "Patient A", 230),
                QuantityInfo = Helper.CreateQuantityInfo(quantity),
                Values = values
            });
        }
예제 #5
0
 public DataInfo(ColumnOrigins columnOrigins)
     : this(columnOrigins, AuxiliaryType.Undefined, string.Empty, DateTime.Now, string.Empty, string.Empty, null)
 {
 }
예제 #6
0
 public void should_set_the_value_as_expected(string value, ColumnOrigins origin)
 {
    sut.SetColumnOrigin(_column, value);
    _column.DataInfo.Origin.ShouldBeEqualTo(origin);
 }
예제 #7
0
 private static bool dataColumnIs(DataColumn column, ColumnOrigins columnOrigin) => column.DataInfo?.Origin == columnOrigin;