public List <MeasurementV1> ToMeasurements(TOA5 meteorology) { List <MeasurementV1> measurements = new List <MeasurementV1>(); foreach (IObservation obs in meteorology.Observations) { foreach (Variable variable in meteorology.Metadata.Variables) { // Skip TIMESTAMP and RECORD if (variable.FieldName == "TIMESTAMP" || variable.FieldName == "RECORD") { continue; } MeasurementV1 measurement = CreateMeasurementFromVariable(variable, obs, meteorology.Metadata); measurements.Add(measurement); } } return(measurements); }
public void ToMeasurement_ValidData_ReturnCorrectMeasurements() { //# Arrange MeasurementV1 expectedMeasurement_RH_Avg = new MeasurementV1( "EcTower_CookEast_RelativeHumidityTsAvg", "CookEast_RelativeHumidityTsAvg_2017-06-20T11:30:00.0000000Z", "Measurement", "RelativeHumidityTsAvg", "1.0.0", "CafMeteorologyEcTower", "", "", "", "", null, "CookEast", new LocationV1("Point", 46.78152, -117.08205), new DateTime(2017, 6, 20, 11, 30, 0), new List <PhysicalQuantityV1>() { new PhysicalQuantityV1( (decimal)56.22676, "%", 0, 0, 0, DateTime.MaxValue, "DocumentDbMeasurementTransformer") }); MeasurementV1 expectedMeasurement_amb_tmpr_Avg = new MeasurementV1( "EcTower_CookEast_TemperatureAirTsAvg", "CookEast_TemperatureAirTsAvg_2017-06-20T11:30:00.0000000Z", "Measurement", "TemperatureAirTsAvg", "1.0.0", "CafMeteorologyEcTower", "", "", "", "", null, "CookEast", new LocationV1("Point", 46.78152, -117.08205), new DateTime(2017, 6, 20, 11, 30, 0), new List <PhysicalQuantityV1>() { new PhysicalQuantityV1( (decimal)4.940109, "C", 0, 0, 0, DateTime.MaxValue, "DocumentDbMeasurementTransformer") }); MeasurementV1 expectedMeasurement_PAR_density_Avg = new MeasurementV1( "EcTower_CookEast_ParDensityTsAvg", "CookEast_ParDensityTsAvg_2017-06-20T11:30:00.0000000Z", "Measurement", "ParDensityTsAvg", "1.0.0", "CafMeteorologyEcTower", "", "", "", "", null, "CookEast", new LocationV1("Point", 46.78152, -117.08205), new DateTime(2017, 6, 20, 11, 30, 0), new List <PhysicalQuantityV1>() { new PhysicalQuantityV1( (decimal)0.001956598, "mol/(m^2 s)", 0, 0, 0, DateTime.MaxValue, "DocumentDbMeasurementTransformer") }); List <MeasurementV1> actualMeasurements = new List <MeasurementV1>(); //# Act Mappers.MapFromMeteorologyDataTableToCafStandards map = new Mappers.MapFromMeteorologyDataTableToCafStandards(); DocumentDbMeasurementV1Transformer sut = new DocumentDbMeasurementV1Transformer(map, "1.0.0"); actualMeasurements = sut.ToMeasurements(GetMockMeteorology()); //# Assert Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_RH_Avg.Name) .PhysicalQuantities[0].Value, expectedMeasurement_RH_Avg.PhysicalQuantities[0].Value); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_RH_Avg.Name) .PhysicalQuantities[0].Unit, expectedMeasurement_RH_Avg.PhysicalQuantities[0].Unit); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_amb_tmpr_Avg.Name) .PhysicalQuantities[0].Value, expectedMeasurement_amb_tmpr_Avg.PhysicalQuantities[0].Value); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_amb_tmpr_Avg.Name) .PhysicalQuantities[0].Unit, expectedMeasurement_amb_tmpr_Avg.PhysicalQuantities[0].Unit); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_PAR_density_Avg.Name) .PhysicalQuantities[0].Value, expectedMeasurement_PAR_density_Avg.PhysicalQuantities[0].Value); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_PAR_density_Avg.Name) .ID, expectedMeasurement_PAR_density_Avg.ID); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_PAR_density_Avg.Name) .FieldID, expectedMeasurement_PAR_density_Avg.FieldID); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_PAR_density_Avg.Name) .Location.Coordinates[0], expectedMeasurement_PAR_density_Avg.Location.Coordinates[0]); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_PAR_density_Avg.Name) .MetadataID, expectedMeasurement_PAR_density_Avg.MetadataID); Assert.Equal( actualMeasurements .Find(m => m.Name == expectedMeasurement_PAR_density_Avg.Name) .SchemaVersion, expectedMeasurement_PAR_density_Avg.SchemaVersion); }