From 46e756c3becb6c20a7f5d692f7651fb765f675c7 Mon Sep 17 00:00:00 2001
From: Tauriello Gerardo <gerardo.tauriello@unibas.ch>
Date: Thu, 2 Nov 2017 11:25:56 -0700
Subject: [PATCH] Fix unit test compilation issues on Boost versions >= 1.59

---
 modules/geom/src/vec_mat_predicates.hh   | 12 ++++++------
 modules/img/alg/tests/test_normalizer.cc |  6 +++++-
 modules/io/tests/test_io_img.cc          | 12 ++++++++++--
 modules/seq/base/tests/test_alignment.cc |  2 +-
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/modules/geom/src/vec_mat_predicates.hh b/modules/geom/src/vec_mat_predicates.hh
index e294efdbf..7f897a509 100644
--- a/modules/geom/src/vec_mat_predicates.hh
+++ b/modules/geom/src/vec_mat_predicates.hh
@@ -39,10 +39,10 @@ boost::test_tools::predicate_result vec_is_close(const V& v1, const V& v2,
   std::string labels[]={"x","y","z","w"};
   bool flag=true;
   boost::test_tools::predicate_result res( false );
-#if BOOST_VERSION<103400
-  boost::test_tools::close_at_tolerance<Real> close_test(tolerance);
-#else
+#if BOOST_VERSION<105900
   boost::test_tools::close_at_tolerance<Real> close_test(boost::test_tools::percent_tolerance(tolerance));
+#else
+  boost::math::fpc::close_at_tolerance<Real> close_test(boost::math::fpc::percent_tolerance(tolerance));
 #endif
   for(unsigned int i=0;i<dim;++i){
     if(v1[i]==0.0){
@@ -97,10 +97,10 @@ boost::test_tools::predicate_result mat_is_close(const M& m1, const M& m2,
 {
   bool flag=true;
   boost::test_tools::predicate_result res( false );
-#if BOOST_VERSION<103400
-  boost::test_tools::close_at_tolerance<Real> close_test(tolerance);
-#else
+#if BOOST_VERSION<105900
   boost::test_tools::close_at_tolerance<Real> close_test(boost::test_tools::percent_tolerance(tolerance));
+#else
+  boost::math::fpc::close_at_tolerance<Real> close_test(boost::math::fpc::percent_tolerance(tolerance));
 #endif
   for(unsigned int i=0;i<dim;++i){
     for(unsigned int j=0;j<dim;++j){
diff --git a/modules/img/alg/tests/test_normalizer.cc b/modules/img/alg/tests/test_normalizer.cc
index e072626db..205a5a5b3 100644
--- a/modules/img/alg/tests/test_normalizer.cc
+++ b/modules/img/alg/tests/test_normalizer.cc
@@ -39,7 +39,11 @@ using namespace ost::img::alg;
 
 void test() 
 {
-  boost::test_tools::close_at_tolerance<Real> close_test(::boost::test_tools::percent_tolerance(0.001));
+#if BOOST_VERSION<105900
+  boost::test_tools::close_at_tolerance<Real> close_test(boost::test_tools::percent_tolerance(0.001));
+#else
+  boost::math::fpc::close_at_tolerance<Real> close_test(boost::math::fpc::percent_tolerance(0.001));
+#endif
   ost::img::ImageHandle testimage=ost::img::CreateImage(ost::img::Extent(ost::img::Point(0,0),ost::img::Point(3,3)));
   int counter=0;
   for (ost::img::ExtentIterator i(testimage.GetExtent()); !i.AtEnd(); ++i, ++counter) {
diff --git a/modules/io/tests/test_io_img.cc b/modules/io/tests/test_io_img.cc
index 411201a97..9ac75d094 100644
--- a/modules/io/tests/test_io_img.cc
+++ b/modules/io/tests/test_io_img.cc
@@ -48,7 +48,11 @@ BOOST_AUTO_TEST_SUITE( io )
 BOOST_AUTO_TEST_CASE(test_io_img) 
 {
   //float tests
-  boost::test_tools::close_at_tolerance<Real> close_test(::boost::test_tools::percent_tolerance(0.001));
+#if BOOST_VERSION<105900
+  boost::test_tools::close_at_tolerance<Real> close_test(boost::test_tools::percent_tolerance(0.001));
+#else
+  boost::math::fpc::close_at_tolerance<Real> close_test(boost::math::fpc::percent_tolerance(0.001));
+#endif
   ost::img::ImageHandle testimage=ost::img::CreateImage(ost::img::Extent(ost::img::Point(0,0),ost::img::Point(4,3)));
   int counter=0;
   for (img::ExtentIterator i(testimage.GetExtent()); !i.AtEnd(); ++i, ++counter) {
@@ -164,7 +168,11 @@ BOOST_AUTO_TEST_CASE(test_io_img_dat)
 {
   // test for the dat file format using a square image (non square images not supported by dat)
   //float test
-  boost::test_tools::close_at_tolerance<Real> close_test(::boost::test_tools::percent_tolerance(0.001));
+#if BOOST_VERSION<105900
+  boost::test_tools::close_at_tolerance<Real> close_test(boost::test_tools::percent_tolerance(0.001));
+#else
+  boost::math::fpc::close_at_tolerance<Real> close_test(boost::math::fpc::percent_tolerance(0.001));
+#endif
   ost::img::ImageHandle testimage=ost::img::CreateImage(ost::img::Extent(ost::img::Point(0,0),ost::img::Point(3,3)));
   int counter=0;
   for (img::ExtentIterator i(testimage.GetExtent()); !i.AtEnd(); ++i, ++counter) {
diff --git a/modules/seq/base/tests/test_alignment.cc b/modules/seq/base/tests/test_alignment.cc
index a70c19b22..52da21684 100644
--- a/modules/seq/base/tests/test_alignment.cc
+++ b/modules/seq/base/tests/test_alignment.cc
@@ -167,7 +167,7 @@ BOOST_AUTO_TEST_CASE(alignment_attach_view)
   BOOST_CHECK_NO_THROW(a.AttachView(0,EntityView()));
   BOOST_CHECK_EQUAL(a.GetResidue(0,1), EntityView());
   BOOST_CHECK_EQUAL(a.GetResidue(0,3), EntityView());
-  BOOST_CHECK_THROW(a.GetResidue(-1,0),std::out_of_range)
+  BOOST_CHECK_THROW(a.GetResidue(-1,0),std::out_of_range);
 }
 
 BOOST_AUTO_TEST_CASE(alignment_cut)
-- 
GitLab