diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-01-30 10:51:14 -0800 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-01-30 10:51:14 -0800 |
commit | 32088c06a169ed8d1286c491ed21a20321ae58a5 (patch) | |
tree | 4b76a47ccbe09a07373ba47b59c202cdacb3c50f /unsupported/test/cxx11_tensor_thread_pool.cpp | |
parent | 2053478c5677b53c87b302d962a0545d08833a72 (diff) |
Made the comparison between single and multithreaded contraction results more resistant to numerical noise to prevent spurious test failures.
Diffstat (limited to 'unsupported/test/cxx11_tensor_thread_pool.cpp')
-rw-r--r-- | unsupported/test/cxx11_tensor_thread_pool.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/unsupported/test/cxx11_tensor_thread_pool.cpp b/unsupported/test/cxx11_tensor_thread_pool.cpp index 8e5636bb7..aa76009b7 100644 --- a/unsupported/test/cxx11_tensor_thread_pool.cpp +++ b/unsupported/test/cxx11_tensor_thread_pool.cpp @@ -91,10 +91,15 @@ void test_multithread_contraction() for (ptrdiff_t i = 0; i < t_result.size(); i++) { VERIFY(&t_result.data()[i] != &m_result.data()[i]); - if (fabs(t_result.data()[i] - m_result.data()[i]) >= 1e-4) { - std::cout << "mismatch detected: " << t_result.data()[i] << " vs " << m_result.data()[i] << std::endl; - assert(false); + if (fabs(t_result(i) - m_result(i)) < 1e-4) { + continue; + } + if (Eigen::internal::isApprox(t_result(i), m_result(i), 1e-4f)) { + continue; } + std::cout << "mismatch detected at index " << i << ": " << t_result(i) + << " vs " << m_result(i) << std::endl; + assert(false); } } |