Testing: Add more packing types

This commit is contained in:
Shahram Najm 2022-12-11 15:36:46 +00:00
parent 06801f142f
commit 6d6528b383
1 changed files with 9 additions and 7 deletions

View File

@ -2714,14 +2714,15 @@ static double values[] = {
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
size_t len, slen; size_t len, slen;
grib_handle* h; grib_handle* h = NULL;
const char* packingType[2] = { "grid_second_order", "grid_complex_spatial_differencing" }; const char* packingType[] = { "grid_second_order", "grid_complex_spatial_differencing", "grid_complex", "grid_ccsds" };
int ipackingType; const size_t numTypes = sizeof(packingType)/sizeof(packingType[0]);
int ipackingType = 0;
const double zmiss = 9999999999.; const double zmiss = 9999999999.;
long numberOfValues, numberOfDataPoints; long numberOfValues, numberOfDataPoints;
int i, numberOfMissing; int i, numberOfMissing;
for (ipackingType = 0; ipackingType < 2; ipackingType++) { for (ipackingType = 0; ipackingType < numTypes; ipackingType++) {
GRIB_CHECK(((h = grib_handle_new_from_samples(NULL, "regular_ll_pl_grib2")) == NULL), 0); GRIB_CHECK(((h = grib_handle_new_from_samples(NULL, "regular_ll_pl_grib2")) == NULL), 0);
GRIB_CHECK(grib_set_long(h, "Ni", NLON), 0); GRIB_CHECK(grib_set_long(h, "Ni", NLON), 0);
GRIB_CHECK(grib_set_long(h, "Nj", NLAT), 0); GRIB_CHECK(grib_set_long(h, "Nj", NLAT), 0);
@ -2737,6 +2738,7 @@ int main(int argc, char* argv[])
GRIB_CHECK(grib_set_long(h, "bitsPerValue", 16), 0); GRIB_CHECK(grib_set_long(h, "bitsPerValue", 16), 0);
slen = strlen(packingType[ipackingType]); slen = strlen(packingType[ipackingType]);
printf("Doing packingType=%s\n", packingType[ipackingType]);
GRIB_CHECK(grib_set_string(h, "packingType", packingType[ipackingType], &slen), 0); GRIB_CHECK(grib_set_string(h, "packingType", packingType[ipackingType], &slen), 0);
GRIB_CHECK(grib_set_long(h, "bitmapPresent", 1), 0); GRIB_CHECK(grib_set_long(h, "bitmapPresent", 1), 0);
@ -2753,9 +2755,9 @@ int main(int argc, char* argv[])
GRIB_CHECK(grib_get_long(h, "numberOfDataPoints", &numberOfDataPoints), 0); GRIB_CHECK(grib_get_long(h, "numberOfDataPoints", &numberOfDataPoints), 0);
if (numberOfValues + numberOfMissing != numberOfDataPoints) { if (numberOfValues + numberOfMissing != numberOfDataPoints) {
printf("%s: numberOfValues = %ld, numberOfDataPoints = %ld, numberOfMissing = %d\n", printf("ERROR: numberOfValues = %ld, numberOfDataPoints = %ld, numberOfMissing = %d\n",
packingType[ipackingType], numberOfValues, numberOfDataPoints, numberOfMissing); numberOfValues, numberOfDataPoints, numberOfMissing);
printf(" numberOfValues appears to be incorrect\n"); printf("ERROR: numberOfValues appears to be incorrect\n");
return 1; return 1;
} }