public void GivenOperationDataWithSpatialRecordDataWithNumericRepValueWhenProcessOperationDAtaThenRowsAreAdded()
        {
            var harvestMoistureMeter = new NumericWorkingData { Representation = RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation() };
            _workingDatas.Add(harvestMoistureMeter);
            _deviceElementUses.Add(0, new List<DeviceElementUse>
            {
                new DeviceElementUse
                {
                    Depth = 0,
                    GetWorkingDatas = () => _workingDatas,
                }
            });

            var spatialRecord = new SpatialRecord();
            var numericRepresentation = new NumericRepresentationValue(RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation(), UnitSystemManager.GetUnitOfMeasure("prcnt"), new NumericValue(UnitSystemManager.GetUnitOfMeasure("prcnt"), 3.0));

            spatialRecord.SetMeterValue(harvestMoistureMeter, numericRepresentation);

            _spatialRecords.Add(spatialRecord);

            var dataTable = _operationDataProcessor.ProcessOperationData(_operationData);

            Assert.AreEqual(1, dataTable.Rows.Count);
            Assert.AreEqual(numericRepresentation.Value.Value.ToString(), dataTable.Rows[0][0]);
        }
        public void GivenMetersWhenMapThenMetersAreSorted()
        {
            _meter.Id.UniqueIds.Add(new UniqueId
            {
                Id = "DLV3",
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Source = UniqueIdMapper.IsoSource
               });
            _meter.Representation = RepresentationInstanceList.vrYieldMass.ToModelRepresentation();
            _representationMapperMock.Setup(x => x.Map(_meter.Representation)).Returns(5);
            _meters.Add(_meter);

            var meter1 = new NumericWorkingData();
            meter1.Id.UniqueIds.Add(new UniqueId
            {
                Id = "DLV1",
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Source = UniqueIdMapper.IsoSource
            });
            meter1.Representation = RepresentationInstanceList.vrYieldMass.ToModelRepresentation();
            _representationMapperMock.Setup(x => x.Map(meter1.Representation)).Returns(8);
            _meters.Add(meter1);

            var result = Map().ToList();
            Assert.AreEqual(8.ToString(), result[0].A);
            Assert.AreEqual(5.ToString(), result[1].A);
        }
        public uint Map(NumericWorkingData meter, SpatialRecord spatialRecord)
        {
            var value = (NumericRepresentationValue)spatialRecord.GetMeterValue(meter);
            if (value == null)
                return 0;

            var resolution = GetResolution(value);
            return (UInt32)(value.Value.Value / resolution);
        }
        public void Setup()
        {
            _interpolator = new RepresentationValueInterpolator();

            _numericMeter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            _enumeratedMeter = new ISOEnumeratedMeter
            {
                Representation = RepresentationInstanceList.dtSectionControlMasterState.ToModelRepresentation(),
                ValueCodes = new List<int> { 1, 2, 3 },
                DeviceElementUseId = 1,
                GetEnumeratedValue = (sv, im) => new EnumeratedValue { Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 3 } }
            };
        }
Exemple #5
0
 private NumericWorkingData MapNumericMeter(DLV dlv, int sectionId, int order)
 {
     var meter = new NumericWorkingData
     {
         UnitOfMeasure = _representationMapper.GetUnitForDdi(Convert.ToInt32(dlv.A, 16)),
         DeviceElementUseId = sectionId,
         Representation = _representationMapper.Map(Convert.ToInt32(dlv.A, 16))
     };
     meter.Id.UniqueIds.Add(_uniqueIdMapper.Map("DLV" + order));
     return meter;
 }
        public void Setup()
        {
            _dataPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
            Directory.CreateDirectory(_dataPath);
            _fileName = "test.bin";
            _meters = new List<WorkingData>();
            _spatialRecord = new SpatialRecord {Geometry = new Point {X = 93.6208, Y = 41.5908}};
            _spatialRecords = new List<SpatialRecord> {_spatialRecord};

            _numericMeter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt"),
                DeviceElementUseId = 1
            };

            _enumeratedMeter = new ISOEnumeratedMeter
            {
                Representation = RepresentationInstanceList.dtSkyCondition.ToModelRepresentation(),
                DeviceElementUseId = 1,
                ValueCodes = new List<int> {0, 1, 2}
            };

            _numericValueMapperMock = new Mock<INumericValueMapper>();
            _enumeratedMeterMapperMock = new Mock<IEnumeratedValueMapper>();
            _binaryWriter = new BinaryWriter(_enumeratedMeterMapperMock.Object, _numericValueMapperMock.Object);
        }
        private void SetNumericMeterValue(ISOSpatialRow isoSpatialRow, NumericWorkingData meter, SpatialRecord spatialRecord)
        {
            var isoValue = isoSpatialRow.SpatialValues.SingleOrDefault(v => v.Id == meter.Id.FindIntIsoId());

            if (isoValue != null)
            {
                var value = new NumericRepresentationValue(meter.Representation as NumericRepresentation, meter.UnitOfMeasure, new NumericValue(meter.UnitOfMeasure, isoValue.Value));
                spatialRecord.SetMeterValue(meter, value);

                var other = new NumericRepresentationValue(meter.Representation as NumericRepresentation, meter.UnitOfMeasure, new NumericValue(meter.UnitOfMeasure, isoValue.Value));
                _representationValueInterpolator.SetMostRecentMeterValue(meter, other);
            }
            else
            {
                var value = _representationValueInterpolator.Interpolate(meter) as NumericRepresentationValue;
                spatialRecord.SetMeterValue(meter, value);
            }
        }
        public void GivenIsoSpatialRowAndMeterWhenMapThenSpatialRecordContainsMeterValue()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 12.3
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };
            _isoSpatialRows.Add(_isoSpatialRow);

            WorkingData meter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0",
                Source = UniqueIdMapper.IsoSource
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            var result = Map();
            var meterValue = result.First().GetMeterValue(meter) as NumericRepresentationValue;

            Assert.AreEqual(12.3, meterValue.Value.Value);
        }
        public void GivenIsoSpatialRowWithoutMeterWhenMapThenInterpolatorIsCalled()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 12.3
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };

            var isoSpatialRow2 = new ISOSpatialRow { SpatialValues = new List<SpatialValue>() };

            _isoSpatialRows = new List<ISOSpatialRow> {_isoSpatialRow, isoSpatialRow2};

            var meter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0"
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            Map().ToList();
            _spatialValueInterpolator.Verify(s => s.Interpolate(It.IsAny<WorkingData>()));
        }
        public void GivenIsoSpatialRowsWithoutNumericMeterOnSecondWhenMapThenSecondValueIsInterpolator()
        {
            var spatialValue = new SpatialValue
            {
                Id = 0,
                Value = 12.3
            };
            _isoSpatialRow.SpatialValues = new List<SpatialValue> { spatialValue };

            var isoSpatialRow2 = new ISOSpatialRow { SpatialValues = new List<SpatialValue>() };

            _isoSpatialRows = new List<ISOSpatialRow> {_isoSpatialRow, isoSpatialRow2};

            var meter = new NumericWorkingData
            {
                Representation = RepresentationInstanceList.vrAvgHarvestMoisture.ToModelRepresentation(),
                DeviceElementUseId = 1,
                UnitOfMeasure = UnitSystemManager.GetUnitOfMeasure("prcnt")
            };

            var uniqueId = new UniqueId
            {
                CiTypeEnum = CompoundIdentifierTypeEnum.String,
                Id = "DLV0"
            };
            meter.Id.UniqueIds.Add(uniqueId);
            _meters.Add(meter);

            var numericRepresentation = new NumericRepresentationValue(meter.Representation as NumericRepresentation,
                    meter.UnitOfMeasure, new NumericValue(meter.UnitOfMeasure, 2.3));

            _spatialValueInterpolator.Setup(s => s.Interpolate(meter)).Returns(numericRepresentation);

            var result = Map().ToList();

            Assert.AreEqual(numericRepresentation, result[1].GetMeterValue(meter) as NumericRepresentationValue);
        }
        public void GivenOperationDataWithSpatialRecordDataWithNumericRepValueWhenProcessOperationDataThenColumnNamesContainUom()
        {
            var harvestMoistureMeter = new NumericWorkingData { Representation = RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation() };
            _workingDatas.Add(harvestMoistureMeter);
            _deviceElementUses.Add(0, new List<DeviceElementUse>
            {
                new DeviceElementUse
                {
                    Depth = 0,
                    GetWorkingDatas = () => _workingDatas,
                }
            });

            var spatialRecord = new SpatialRecord();
            var numericRepresentation = new NumericRepresentationValue(RepresentationInstanceList.vrHarvestMoisture.ToModelRepresentation(), UnitSystemManager.GetUnitOfMeasure("prcnt"), new NumericValue(UnitSystemManager.GetUnitOfMeasure("prcnt"), 3.0));

            spatialRecord.SetMeterValue(harvestMoistureMeter, numericRepresentation);

            _spatialRecords.Add(spatialRecord);

            var dataTable = _operationDataProcessor.ProcessOperationData(_operationData);

            var expectedColumnName = _workingDatas.First().Representation.Code + "-" + _workingDatas.First().Id.ReferenceId + "-0-" +  numericRepresentation.Value.UnitOfMeasure.Code;
            Assert.AreEqual(expectedColumnName, dataTable.Columns[0].ColumnName);
        }