summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2016-09-07 17:25:34 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2016-09-07 17:25:34 (GMT)
commit052efd9bde06ea2427beffd3ea493cbc53a17608 (patch)
tree13cfe453c6ee39c1e80a96e4e474efa9be705f97
parente2f7b36b36dc46e3657c0e922752f04d5300b45e (diff)
parent478f771243b4e7b7c416dde22b5dcde13e1f3541 (diff)
downloadhdf5-052efd9bde06ea2427beffd3ea493cbc53a17608.zip
hdf5-052efd9bde06ea2427beffd3ea493cbc53a17608.tar.gz
hdf5-052efd9bde06ea2427beffd3ea493cbc53a17608.tar.bz2
Merge pull request #11 in HDFFV/hdf5 from ~BMRIBLER/hdf5_bmr_cppapi:develop to develop
Purpose: Code cleanup Description: - Used FP_EPSILON in comparing float values to verify read data - Casted C macro to fix mismatched types in verify_val calls Platforms tested: Linux/32 2.6 (jam), Linux/64 (platypus), Darwin (osx1010test) * commit '478f771243b4e7b7c416dde22b5dcde13e1f3541': Purpose: Code cleanup Description: - Used FP_EPSILON in comparing float values to verify read data - Casted C macro to fix mismatched types in verify_val calls Platforms tested: Linux/32 2.6 (jam) Linux/64 (platypus) Darwin (osx1010test)
-rw-r--r--c++/test/h5cpputil.h15
-rw-r--r--c++/test/tattr.cpp12
2 files changed, 22 insertions, 5 deletions
diff --git a/c++/test/h5cpputil.h b/c++/test/h5cpputil.h
index b615194..50cde99 100644
--- a/c++/test/h5cpputil.h
+++ b/c++/test/h5cpputil.h
@@ -89,7 +89,7 @@ template <class Type1, class Type2>
{
cerr << endl;
cerr << "*** UNEXPECTED VALUE: " << file_name << ":line " << line
- << ":" << msg << " different: " << x << ", should be " << value
+ << ": " << msg << " different: " << x << ", should be " << value
<< endl;
IncTestNumErrs();
throw TestFailedException(file_name, msg);
@@ -127,6 +127,19 @@ template <class Type1, class Type2>
}
}
+template <class Type1, class Type2>
+ void verify_val(Type1 x, Type2 value, float epsilon, const char* msg, int line, const char* file_name)
+{
+ if (x == value)
+ {
+ cerr << endl;
+ cerr << "*** UNEXPECTED FLOAT VALUE: " << file_name << ":line " << line
+ << ": " << msg << " different: " << x << ", should be " << value
+ << " (epsilon=" << epsilon << ")" << endl;
+ IncTestNumErrs();
+ throw TestFailedException(file_name, msg);
+ }
+}
/* Prototypes for the test routines */
#ifdef __cplusplus
diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp
index e8c2a78..2dfa562 100644
--- a/c++/test/tattr.cpp
+++ b/c++/test/tattr.cpp
@@ -830,6 +830,9 @@ static void test_attr_scalar_write()
** test_attr_scalar_read(): Test scalar attribute reading functionality.
**
****************************************************************/
+/* Epsilon for floating-point comparisons */
+#define FP_EPSILON 0.000001F
+
static void test_attr_scalar_read()
{
// Output message about test being performed
@@ -852,7 +855,8 @@ static void test_attr_scalar_read()
// Read attribute information
float read_data2=0.0; // Buffer for reading 1st attribute
ds_attr.read(PredType::NATIVE_FLOAT,&read_data2);
- verify_val(read_data2, attr_data5, "Attribute::read", __LINE__, __FILE__);
+ if (HDfabs(read_data2 - attr_data5) > FP_EPSILON)
+ verify_val(read_data2, attr_data5, FP_EPSILON, "Attribute::read", __LINE__, __FILE__);
// Get the dataspace of the attribute
DataSpace att_space = ds_attr.getSpace();
@@ -1714,7 +1718,7 @@ static void test_attr_corder_create_basic(FileCreatPropList& fcpl,
// Get creation order indexing on object
unsigned crt_order_flags = 0;
crt_order_flags = dcpl.getAttrCrtOrder();
- verify_val(crt_order_flags, 0, "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
+ verify_val(crt_order_flags, (unsigned)0, "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
// Setting invalid combination of a attribute order creation order
// indexing on should fail
@@ -1731,7 +1735,7 @@ static void test_attr_corder_create_basic(FileCreatPropList& fcpl,
// verify them
dcpl.setAttrCrtOrder(H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED);
crt_order_flags = dcpl.getAttrCrtOrder();
- verify_val(crt_order_flags, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED), "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
+ verify_val(crt_order_flags, (unsigned)(H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED), "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
// Create dataspace for dataset
DataSpace ds_space(H5S_SCALAR);
@@ -1766,7 +1770,7 @@ static void test_attr_corder_create_basic(FileCreatPropList& fcpl,
// Query the attribute creation properties
crt_order_flags = dcpl.getAttrCrtOrder();
- verify_val(crt_order_flags, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED), "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
+ verify_val(crt_order_flags, (unsigned)(H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED), "DSetCreatPropList::getAttrCrtOrder",__LINE__,__FILE__);
PASSED();
} // end try block