mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[svn-r9442] Purpose:
Add code more code to test H5Pget_data_transform and H5Pset_data_transform Description: Added a test to verify that H5Pset_data_transform will correctly replace a data transform with a new one and properly use the new transform on the data. Added a test to verify that H5Pget_data_transform properly returns the transform string. Platforms tested: sol + eirene + copper Misc. update:
This commit is contained in:
parent
5ec05c10e8
commit
b7a3a55b77
@ -2,6 +2,7 @@
|
||||
|
||||
#define ROWS 12
|
||||
#define COLS 18
|
||||
#define FLOAT_TOL 0.0001
|
||||
|
||||
int init_test(void);
|
||||
int test_char(const hid_t dxpl_id_c_to_f);
|
||||
@ -20,6 +21,7 @@ int test_ldouble(const hid_t dxpl_id_c_to_f);
|
||||
int test_double(const hid_t dxpl_id_c_to_f);
|
||||
int test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy);
|
||||
int test_trivial(const hid_t dxpl_id_simple);
|
||||
int test_getset(const hid_t dxpl_id_simple);
|
||||
|
||||
/* These are used everywhere and are init'ed in init_test() */
|
||||
hid_t dset_id_int;
|
||||
@ -108,6 +110,8 @@ int main(void)
|
||||
/* Run all the tests */
|
||||
if((err = init_test()) < 0) TEST_ERROR;
|
||||
|
||||
|
||||
|
||||
if((err = test_char(dxpl_id_c_to_f)) < 0) TEST_ERROR;
|
||||
if((err = test_schar(dxpl_id_c_to_f)) < 0) TEST_ERROR;
|
||||
if((err = test_uchar(dxpl_id_utrans_inv)) < 0) TEST_ERROR;
|
||||
@ -125,6 +129,7 @@ int main(void)
|
||||
|
||||
if((err = test_copy(dxpl_id_c_to_f_copy, dxpl_id_polynomial_copy)) < 0) TEST_ERROR;
|
||||
if((err = test_trivial(dxpl_id_simple)) < 0) TEST_ERROR;
|
||||
if((err = test_getset(dxpl_id_c_to_f)) < 0) TEST_ERROR;
|
||||
|
||||
/* Close the objects we opened/created */
|
||||
if((err = H5Dclose(dset_id_char))<0) TEST_ERROR;
|
||||
@ -726,7 +731,7 @@ int test_trivial(const hid_t dxpl_id_simple)
|
||||
{
|
||||
for(col = 0; col<COLS; col++)
|
||||
{
|
||||
if((windchillFfloatread[row][col] - 4.8) > 0.0001)
|
||||
if((windchillFfloatread[row][col] - 4.8) > FLOAT_TOL)
|
||||
{
|
||||
H5_FAILED();
|
||||
fprintf(stderr, " ERROR: Conversion failed to match computed data\n");
|
||||
@ -757,6 +762,71 @@ error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
int test_getset(const hid_t dxpl_id_c_to_f)
|
||||
{
|
||||
char* ptrgetTest;
|
||||
herr_t err;
|
||||
int row, col;
|
||||
float windchillFfloatread[ROWS][COLS];
|
||||
|
||||
const char* simple = "(4/2) * ( (2 + 4)/(5 - 2.5))"; /* this equals 4.8 */
|
||||
const char* c_to_f = "(9/5.0)*x + 32";
|
||||
|
||||
TESTING("H5Pget_data_transform")
|
||||
H5Pget_data_transform(dxpl_id_c_to_f, &ptrgetTest);
|
||||
if(strcmp(c_to_f, ptrgetTest) != 0)
|
||||
{
|
||||
H5_FAILED();
|
||||
fprintf(stderr, " ERROR: Data transform failed to match what was set\n");
|
||||
goto error;
|
||||
}
|
||||
else
|
||||
PASSED();
|
||||
|
||||
|
||||
if((err = H5Pset_data_transform(dxpl_id_c_to_f, simple))<0) TEST_ERROR;
|
||||
|
||||
TESTING("data transform, reseting of transform property")
|
||||
if((err = H5Dread(dset_id_float, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, dxpl_id_c_to_f, windchillFfloatread))<0) TEST_ERROR;
|
||||
for(row = 0; row<ROWS; row++)
|
||||
{
|
||||
for(col = 0; col<COLS; col++)
|
||||
{
|
||||
if((windchillFfloatread[row][col] - 4.8) > FLOAT_TOL)
|
||||
{
|
||||
H5_FAILED();
|
||||
fprintf(stderr, " ERROR: Conversion failed to match computed data\n");
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
PASSED();
|
||||
|
||||
free(ptrgetTest);
|
||||
|
||||
TESTING("H5Pget_data_transform, after resetting transform property")
|
||||
H5Pget_data_transform(dxpl_id_c_to_f, &ptrgetTest);
|
||||
if(strcmp(simple, ptrgetTest) != 0)
|
||||
{
|
||||
H5_FAILED();
|
||||
fprintf(stderr, " ERROR: Data transform failed to match what was set\n");
|
||||
goto error;
|
||||
}
|
||||
else
|
||||
PASSED();
|
||||
|
||||
|
||||
|
||||
free(ptrgetTest);
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int compare_int(const int* a, const float* b, int tol)
|
||||
{
|
||||
int i;
|
||||
|
Loading…
Reference in New Issue
Block a user