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 GivenMetersErrorAndNotAvailableWhenGetMetersValueThenValuesReturned() { var enumeratedMeter1 = new ISOEnumeratedMeter { DeviceElementUseId = 1, }; var enumeratedMeter2 = new ISOEnumeratedMeter { DeviceElementUseId = 2, }; var meters = new List<WorkingData> { enumeratedMeter1, enumeratedMeter2 }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiUnloadingAugerStateError.ToModelEnumMember() }); spatialRecord.SetMeterValue(enumeratedMeter2, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiUnloadingAugerStateNotAvailable.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x0302, result); }
public void GivenMetersWithUnStableWhenGetMetersValueThenIsZero() { var enumeratedMeter = new ISOEnumeratedMeter(); var meters = new List<WorkingData> { enumeratedMeter }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiWeightUnStable.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x00, result); }
public void GivenMetersWithUnknownWhenGetMetersValueThenThree() { var enumeratedMeter1 = new ISOEnumeratedMeter(); var meters = new List<WorkingData> { enumeratedMeter1 }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiSunny.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x03, result); }
public void GivenMetersWithPartlyCloudyWhenGetMetersValueThenIsCorrect() { var enumeratedMeter = new ISOEnumeratedMeter(); var meters = new List<WorkingData> { enumeratedMeter }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiPartlyCloudy.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x20544353, result); }
public void GivenMetersWithRearPivotWagonHitchWhenGetMetersValueThenSeven() { var enumeratedMeter1 = new ISOEnumeratedMeter(); var meters = new List<WorkingData> { enumeratedMeter1 }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRearPivotWagonHitch.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x07, result); }
public void GivenMetersWithRearTwoPointWhenGetMetersValueThenTwo() { var enumeratedMeter1 = new ISOEnumeratedMeter { GetEnumeratedValue = (value, meter) => new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRearTwoPoint.ToModelEnumMember(), }, }; var meters = new List<WorkingData> { enumeratedMeter1 }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRearTwoPoint.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x02, result); }
public void GivenMetersWithRecordingStatusOnWhenGetMetersValueThenOne() { var enumeratedMeter1 = new ISOEnumeratedMeter { GetEnumeratedValue = (value, meter) => new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember(), }, DeviceElementUseId = 1, }; var meters = new List<WorkingData> { enumeratedMeter1 }; var spatialRecord = new SpatialRecord(); spatialRecord.SetMeterValue(enumeratedMeter1, new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember() }); var result = _creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x01, result); }
public void GivenMultipleSpatialRowsDuplicateEnumeratedValueWhenWriteThenDifferencesAreWritten() { _enumeratedMeter.Id.UniqueIds.Add(GenerateUniqueId(0)); _numericMeter.Id.UniqueIds.Add(GenerateUniqueId(1)); _meters.AddRange(new List<WorkingData> { _enumeratedMeter, _numericMeter }); var spatialRecord1 = new SpatialRecord { Timestamp = new DateTime(2000, 1, 1, 8, 0, 0), Geometry = new Point { X = 93.6208, Y = 41.5908 } }; spatialRecord1.SetMeterValue(_enumeratedMeter, new EnumeratedValue { Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 1 } }); spatialRecord1.SetMeterValue(_numericMeter, new NumericRepresentationValue()); _numericValueMapperMock.Setup(x => x.Map(_numericMeter, spatialRecord1)).Returns(20); var spatialRecord2 = new SpatialRecord { Timestamp = new DateTime(2000, 1, 1, 8, 0, 0), Geometry = new Point { X = 93.6208, Y = 41.5908 } }; spatialRecord2.SetMeterValue(_enumeratedMeter, new EnumeratedValue { Value = new AgGateway.ADAPT.ApplicationDataModel.Representations.EnumerationMember { Code = 1 } }); spatialRecord2.SetMeterValue(_numericMeter, new NumericRepresentationValue(RepresentationInstanceList.vrSoilTemperature.ToModelRepresentation(), new NumericValue(new UnitOfMeasure(), 20.2))); _numericValueMapperMock.Setup(x => x.Map(_numericMeter, spatialRecord2)).Returns(30); _spatialRecords = new List<SpatialRecord> { spatialRecord1, spatialRecord2 }; _enumeratedMeterMapperMock.Setup(x => x.Map(_enumeratedMeter, It.IsAny<List<WorkingData>>(), spatialRecord1)).Returns(1); _enumeratedMeterMapperMock.Setup(x => x.Map(_enumeratedMeter, It.IsAny<List<WorkingData>>(), spatialRecord2)).Returns(1); Write(); var expectedBytes = new List<byte> { 0x00, 0x74, 0xB7, 0x01, 0x89, 0x1C, // SpatialRecord1 TimeStart 0xA0, 0x40, 0xCA, 0x18, // SpatialRecord1 Position North 0x80, 0x66, 0xCD, 0x37, // SpatialRecord1 Position East 0x00, 0x00, 0x00, 0x00, // SpatialRecord1 Position Up //0x00, 0x0B, 0x01, 0x03, 0x89, 0x1C, // SpatialRecord1 GpsUtcTime and Date 0x02, // number of DLVs to follow 0x00, 0x01, 0x00, 0x00, 0x00, // DLV0 and value 0x01, 0x14, 0x00, 0x00, 0x00, // DLV1 and value 0x00, 0x74, 0xB7, 0x01, 0x89, 0x1C, // SpatialRecord2 TimeStart 0xA0, 0x40, 0xCA, 0x18, // SpatialRecord1 Position North 0x80, 0x66, 0xCD, 0x37, // SpatialRecord1 Position East 0x00, 0x00, 0x00, 0x00, // SpatialRecord1 Position Up //0x00, 0x0B, 0x01, 0x03, 0x89, 0x1C, // SpatialRecord2 GpsUtcTime and Date 0x01, // number of DLVs to follow //0x00, 0x02, 0x00, 0x00, 0x00, // DLV0 and value 0x01, 0x1E, 0x00, 0x00, 0x00 // DLV1 and value }; VerifyFileContents(expectedBytes, 0); }
public void GivenSpatialRecordWithEnumeratedMetersWithSameIdsWhenWriteThenEnumeratedMeterIsCombined() { var isoEnumeratedMeter = new ISOEnumeratedMeter(); _meters.AddRange(new List<WorkingData> { isoEnumeratedMeter }); var spatialRecord = new SpatialRecord { Timestamp = new DateTime(2000, 1, 1, 8, 0, 0), Geometry = new Point {X = 93.6208, Y = 41.5908} }; spatialRecord.SetMeterValue(isoEnumeratedMeter, new EnumeratedValue()); _spatialRecords = new List<SpatialRecord> {spatialRecord}; const uint value = 0x12345678; _enumeratedMeterMapperMock.Setup(x => x.Map(isoEnumeratedMeter, _meters, spatialRecord)).Returns(value); Write(); var expectedBytes = new List<byte> { 0x00, 0x74, 0xB7, 0x01, 0x89, 0x1C, // SpatialRecord1 TimeStart 0xA0, 0x40, 0xCA, 0x18, // SpatialRecord1 Position North 0x80, 0x66, 0xCD, 0x37, // SpatialRecord1 Position East 0x00, 0x00, 0x00, 0x00, // SpatialRecord1 Position Up // 0x00, // 0x0B, // 0x01, // 0x03, // 0x89, // 0x1C, // SpatialRecord1 GpsUtcTime and Date 0x01, // number of DLVs to follow 0x00, 0x78, 0x56, 0x34, 0x12, // DLV0 and value }; VerifyFileContents(expectedBytes, 0); }
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); } }
private void CreateHavestMoistureSpatialRecord(WorkingData workingData, double value) { var spatialRecord = new SpatialRecord(); var meter1Value1 = CreateHarvestMoisture(value); spatialRecord.SetMeterValue(workingData, meter1Value1); _spatialRecords.Add(spatialRecord); }
public void GivenOperationDataWithSpatialRecordDataWithEnumeratedValueWhenProcessOperationDataThenRowsAreAdded() { var meter = new EnumeratedWorkingData { Representation = RepresentationInstanceList.dtRecordingStatus.ToModelRepresentation() }; _workingDatas.Add(meter); _deviceElementUses.Add(0, new List<DeviceElementUse> { new DeviceElementUse { Depth = 0, GetWorkingDatas = () => _workingDatas, } }); var spatialRecord = new SpatialRecord(); var enumeratedValue = new EnumeratedValue{Value = DefinedTypeEnumerationInstanceList.dtiRecordingStatusOn.ToModelEnumMember() }; spatialRecord.SetMeterValue(meter, enumeratedValue); _spatialRecords.Add(spatialRecord); var dataTable = _operationDataProcessor.ProcessOperationData(_operationData); Assert.AreEqual(1, dataTable.Rows.Count); Assert.AreEqual(enumeratedValue.Value.Value, dataTable.Rows[0][0]); }
public void GivenMetersWithStartAt367AndUndefinedWhenGetMetersValueThenValuesCorrect() { var meters = new List<WorkingData>(); for (int i = 1; i < 17; i++) { meters.Add(new ISOEnumeratedMeter { DeviceElementUseId = i }); } var spatialRecord = new SpatialRecord(); for (var i = 0; i < 16; i++) { if (i % 2 == 0) spatialRecord.SetMeterValue(meters[i], new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiSunny.ToModelEnumMember() }); else spatialRecord.SetMeterValue(meters[i], new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiPrescriptionOverridden.ToModelEnumMember() }); } var creator = new CondensedSectionOverrideStateMeterCreator(367); var result = creator.GetMetersValue(meters, spatialRecord); Assert.AreEqual(0x77777777, result); }
private void SetEnumeratedMeterValue(ISOSpatialRow isoSpatialRow, EnumeratedWorkingData meter, SpatialRecord spatialRecord) { var isoValue = isoSpatialRow.SpatialValues.SingleOrDefault(v => v.Id == meter.Id.FindIntIsoId()); if (isoValue != null) { var isoEnumeratedMeter = meter as ISOEnumeratedMeter; var enumeratedValue = isoEnumeratedMeter.GetEnumeratedValue(isoValue, isoEnumeratedMeter); spatialRecord.SetMeterValue(meter, enumeratedValue); _representationValueInterpolator.SetMostRecentMeterValue(meter, enumeratedValue); } else { var value = _representationValueInterpolator.Interpolate(meter) as EnumeratedValue; spatialRecord.SetMeterValue(meter, value); } }
private static List<WorkingData> CreateMeters(out SpatialRecord spatialRecord, int startSection) { var meters = new List<WorkingData>(); for (int i = startSection; i < startSection + 16; i++) { meters.Add(new ISOEnumeratedMeter { DeviceElementUseId = i }); } spatialRecord = new SpatialRecord(); for (var i = 0; i < 16; i++) { if (i % 2 == 0) spatialRecord.SetMeterValue(meters[i], new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiPrescriptionUsed.ToModelEnumMember() }); else spatialRecord.SetMeterValue(meters[i], new EnumeratedValue { Value = DefinedTypeEnumerationInstanceList.dtiPrescriptionOverridden.ToModelEnumMember() }); } return meters; }
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); }