From b7a3a55b77cd0803f3510bc01014c472d376fa5f Mon Sep 17 00:00:00 2001 From: Leon Arber Date: Wed, 20 Oct 2004 16:09:54 -0500 Subject: [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: --- test/dtransform.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/test/dtransform.c b/test/dtransform.c index 14f38ff..f5e55ec 100644 --- a/test/dtransform.c +++ b/test/dtransform.c @@ -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 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 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; -- cgit v0.12