borg_public/libLSS/tests/testFramework.hpp

48 lines
1.4 KiB
C++
Raw Normal View History

2023-05-29 10:41:03 +02:00
/*+
ARES/HADES/BORG Package -- ./libLSS/tests/testFramework.hpp
Copyright (C) 2014-2020 Guilhem Lavaux <guilhem.lavaux@iap.fr>
Copyright (C) 2009-2020 Jens Jasche <jens.jasche@fysik.su.se>
Additional contributions from:
Guilhem Lavaux <guilhem.lavaux@iap.fr> (2023)
+*/
#ifndef __LIBLSS_TESTS_TESTFRAMEWORK_HPP
#define __LIBLSS_TESTS_TESTFRAMEWORK_HPP
#include <H5Cpp.h>
#include <boost/format.hpp>
#include <CosmoTool/hdf5_array.hpp>
namespace LibLSS_tests {
extern std::string reference_path;
namespace {
namespace prefix {
namespace details {
std::string prefix_type(float a) { return "f"; }
std::string prefix_type(double a) { return "f"; }
std::string prefix_type(int a) { return "i"; }
std::string prefix_type(std::complex<float> a) { return "c"; }
std::string prefix_type(std::complex<double> a) { return "c"; }
} // namespace details
template <typename T>
std::string get() {
return details::prefix_type(T());
}
} // namespace prefix
} // namespace
template <typename T>
void loadReferenceInput(size_t N, boost::multi_array_ref<T, 3> &data) {
H5::H5File f(reference_path, H5F_ACC_RDONLY);
CosmoTool::hdf5_read_array(
f, boost::str(boost::format("%s_size_%d") % prefix::get<T>() % N), data,
false, true);
}
} // namespace LibLSS_tests
#endif