diff --git a/modules/img/alg/tests/test_fft.cc b/modules/img/alg/tests/test_fft.cc
index dd742e41ec869feadc9b8747874fef73013b28f6..3e3702690117843ed71fc633b0ddbfeb69e0d418 100644
--- a/modules/img/alg/tests/test_fft.cc
+++ b/modules/img/alg/tests/test_fft.cc
@@ -88,7 +88,7 @@ void Test_C2C_1D_calc(int N)
     Point peak(N/step,0);
     Complex peak_value = out_state->Value(peak);
     Complex calc_peak_value = Complex(sum,0.0);
-    std::cout << std::abs(peak_value-calc_peak_value);
+    //std::cout << std::abs(peak_value-calc_peak_value);
     BOOST_REQUIRE(std::abs(peak_value-calc_peak_value)<1e-06);
 
   } catch (alg::FFTException& e) {
diff --git a/modules/io/tests/test_io_pdb.cc b/modules/io/tests/test_io_pdb.cc
index 0deef37f1912ad07c256c8fa32c9f58fade28179..b0e54cdc37dacf167da076cc78b813c2ee7b4fab 100644
--- a/modules/io/tests/test_io_pdb.cc
+++ b/modules/io/tests/test_io_pdb.cc
@@ -17,6 +17,7 @@
 // 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 //------------------------------------------------------------------------------
 #include <ost/test_utils/compare_files.hh>
+#include <ost/geom/vec_mat_predicates.hh>
 
 #include <ost/platform.hh>
 #include <ost/dyn_cast.hh>
@@ -1009,8 +1010,7 @@ BOOST_AUTO_TEST_CASE(test_pqr_read_atom)
   BOOST_CHECK_EQUAL(a1.GetResidue().GetName(), "MET");
   BOOST_CHECK_EQUAL(a1.GetResidue().GetChain().GetName(), " ");
 
-
-  BOOST_CHECK_EQUAL(a1.GetPos(), geom::Vec3(21.6, 35.3, 56.7));
+  BOOST_CHECK(vec3_is_close(a1.GetPos(), geom::Vec3(21.6, 35.3, 56.7),Real(0.1)));
   BOOST_CHECK_EQUAL(a1.GetElement(), "");
   BOOST_CHECK_EQUAL(a1.IsHetAtom(), false);
   BOOST_CHECK_CLOSE(a1.GetCharge(), Real(-0.3755), Real(1e-4));
@@ -1022,7 +1022,7 @@ BOOST_AUTO_TEST_CASE(test_pqr_read_atom)
   BOOST_CHECK_EQUAL(a2.GetResidue().GetName(), "ARG");
   BOOST_CHECK_EQUAL(a2.GetResidue().GetChain().GetName(), " ");
 
-  BOOST_CHECK_EQUAL(a2.GetPos(), geom::Vec3(23.9, 28.7, 56.5));
+  BOOST_CHECK(vec3_is_close(a2.GetPos(), geom::Vec3(23.9, 28.7, 56.5),Real(0.1)));
   BOOST_CHECK_EQUAL(a2.GetElement(), "");
   BOOST_CHECK_EQUAL(a2.IsHetAtom(), false);
   BOOST_CHECK_CLOSE(a2.GetCharge(), Real(0.2507), Real(1e-4));
diff --git a/modules/io/tests/test_mmcif_info.cc b/modules/io/tests/test_mmcif_info.cc
index b47b90951543c82d03af168681e3fcb4c02b8d0d..3d26747976b618212b05d0416012ecc2b78f5fc5 100644
--- a/modules/io/tests/test_mmcif_info.cc
+++ b/modules/io/tests/test_mmcif_info.cc
@@ -171,7 +171,11 @@ BOOST_AUTO_TEST_CASE(mmcif_info_structdetails)
   BOOST_CHECK(sd.GetTitle() == "More than a structure");
   BOOST_CHECK(sd.GetCASPFlag() == 'Y');
   BOOST_CHECK(sd.GetDescriptor() == "ADENYLATE KINASE");
+  #if OST_DOUBLE_PRECISION
+  BOOST_CHECK_CLOSE(sd.GetMass(), 1.0, 0.001);
+  #else
   BOOST_CHECK_CLOSE(sd.GetMass(), 1.0f, 0.001f);
+  #endif
   BOOST_CHECK(sd.GetMassMethod() == "Good Guess");
   BOOST_CHECK(sd.GetModelDetails() == "Even more guessing");
   BOOST_CHECK(sd.GetModelTypeDetails() == "MINIMIZED AVERAGE");
@@ -193,8 +197,12 @@ BOOST_AUTO_TEST_CASE(mmcif_info)
   info.SetResolution(1.9f);
 
   BOOST_CHECK(info.GetMethod() == StringRef("Cooking.", 8));
+  #if OST_DOUBLE_PRECISION
+  BOOST_CHECK_CLOSE(info.GetResolution(), 1.9, 0.001);
+  #else
   BOOST_CHECK_CLOSE(info.GetResolution(), 1.9f, 0.001f);
-
+  #endif
+ 
   BOOST_MESSAGE("  done.");
 }
 
diff --git a/modules/io/tests/test_mmcif_reader.cc b/modules/io/tests/test_mmcif_reader.cc
index 76b869afc325fcf401c88457357804ca5b97e2ee..953ac31323ea774278d94aead1d66c078df70cc8 100644
--- a/modules/io/tests/test_mmcif_reader.cc
+++ b/modules/io/tests/test_mmcif_reader.cc
@@ -668,7 +668,11 @@ BOOST_AUTO_TEST_CASE(mmcif_refine_tests)
     IOProfile profile;
     MMCifReader mmcif_p(s, eh, profile);
     BOOST_REQUIRE_NO_THROW(mmcif_p.Parse());
+    #if OST_DOUBLE_PRECISION
+    BOOST_CHECK_CLOSE(mmcif_p.GetInfo().GetResolution(), 2.0, 0.001);
+    #else
     BOOST_CHECK_CLOSE(mmcif_p.GetInfo().GetResolution(), 2.0f, 0.001f);
+    #endif
   }
   BOOST_MESSAGE("         done.");
   BOOST_MESSAGE("         capturing fishy data lines...");
@@ -1263,7 +1267,11 @@ BOOST_AUTO_TEST_CASE(mmcif_testreader)
   BOOST_CHECK(sd.GetTitle() == "A Title");
   BOOST_CHECK(sd.GetCASPFlag() == 'Y');
   BOOST_CHECK(sd.GetDescriptor() == "ADENYLATE KINASE");
+  #if OST_DOUBLE_PRECISION
+  BOOST_CHECK_CLOSE(sd.GetMass(), 1.0, 0.001);
+  #else
   BOOST_CHECK_CLOSE(sd.GetMass(), 1.0f, 0.001f);
+  #endif
   BOOST_CHECK(sd.GetMassMethod() == "Good Guess");
   BOOST_CHECK(sd.GetModelDetails() == "Even better guessing");
   BOOST_CHECK(sd.GetModelTypeDetails() == "Guess");
diff --git a/modules/mol/base/tests/test_entity.cc b/modules/mol/base/tests/test_entity.cc
index 9539158d27ced2fa8a1cbd066fef19ae0e1771e2..46a4de626f41d8a37c57c8b0292ab2e7605dca2b 100644
--- a/modules/mol/base/tests/test_entity.cc
+++ b/modules/mol/base/tests/test_entity.cc
@@ -30,13 +30,13 @@
 #include <boost/test/auto_unit_test.hpp>
 
 #define CHECK_TRANSFORMED_ATOM_POSITION(ATOM,TARGET) \
-   BOOST_CHECK(vec3_is_close(ATOM.GetPos(), TARGET))
+   BOOST_CHECK(vec3_is_close(ATOM.GetPos(), TARGET,Real(0.1)))
 
 #define CHECK_ORIGINAL_ATOM_POSITION(ATOM,TARGET) \
- BOOST_CHECK(vec3_is_close(ATOM.GetOriginalPos(), TARGET))
+   BOOST_CHECK(vec3_is_close(ATOM.GetOriginalPos(), TARGET,Real(0.1)))
 
 #define CHECK_ALTERNATE_ATOM_POSITION(ATOM,TARGET,GROUP) \
-   BOOST_CHECK(vec3_is_close(ATOM.GetAltPos(GROUP), TARGET))
+   BOOST_CHECK(vec3_is_close(ATOM.GetAltPos(GROUP), TARGET,Real(0.1)))
 
 using namespace ost;
 using namespace ost::mol;
diff --git a/modules/mol/base/tests/test_ics.cc b/modules/mol/base/tests/test_ics.cc
index 77be8d680f5b1623067e02c3ef172bbf84152961..c2285ee1b0464ce64e7372e041b760317b0a04fb 100644
--- a/modules/mol/base/tests/test_ics.cc
+++ b/modules/mol/base/tests/test_ics.cc
@@ -117,11 +117,11 @@ BOOST_AUTO_TEST_CASE(ics_settorsion_unbuffered)
   Real eps = 0.0001;
   TorsionStructure s;
   ICSEditor e = s.e.EditICS(mol::UNBUFFERED_EDIT);
-  BOOST_CHECK_CLOSE(s.t1.GetAngle(), Real(M_PI), Real(eps));
+  BOOST_CHECK_CLOSE(std::abs(s.t1.GetAngle()), Real(M_PI), Real(eps));
   BOOST_CHECK_SMALL(s.t2.GetAngle(), eps);
   e.SetTorsionAngle(s.t1,0);
   BOOST_CHECK_SMALL(s.t1.GetAngle(), eps);
-  BOOST_CHECK_CLOSE(s.t2.GetAngle(), Real(M_PI), Real(eps));
+  BOOST_CHECK_CLOSE(std::abs(s.t2.GetAngle()), Real(M_PI), Real(eps));
   e.SetTorsionAngle(s.t2,M_PI/4);
   BOOST_CHECK_CLOSE(s.t2.GetAngle(), Real(M_PI/4), Real(eps));
   BOOST_CHECK_CLOSE(s.t1.GetAngle(), Real(-M_PI+M_PI/4), Real(eps));
@@ -138,11 +138,11 @@ BOOST_AUTO_TEST_CASE(ics_settorsion_buffered)
   Real eps = 0.0001;
   TorsionStructure s;
   ICSEditor e = s.e.EditICS(mol::BUFFERED_EDIT);
-  BOOST_CHECK_CLOSE(s.t1.GetAngle(), Real(M_PI), Real(eps));
+  BOOST_CHECK_CLOSE(std::abs(s.t1.GetAngle()), Real(M_PI), Real(eps));
   BOOST_CHECK_SMALL(s.t2.GetAngle(), eps);
   e.SetTorsionAngle(s.t1,0);
   BOOST_CHECK_SMALL(s.t1.GetAngle(), eps);
-  BOOST_CHECK_CLOSE(s.t2.GetAngle(), Real(M_PI), Real(eps));
+  BOOST_CHECK_CLOSE(std::abs(s.t2.GetAngle()), Real(M_PI), Real(eps));
   e.SetTorsionAngle(s.t2,M_PI/4);
   BOOST_CHECK_CLOSE(s.t2.GetAngle(), Real(M_PI/4), Real(eps));
   BOOST_CHECK_CLOSE(s.t1.GetAngle(), Real(-M_PI+M_PI/4), Real(eps));