1 #include "purify/config.h"
3 #include "catch2/catch_all.hpp"
6 #include "purify/directories.h"
9 #include <sopt/gradient_utils.h>
18 auto const comm = sopt::mpi::Communicator::World();
24 CHECK(comm.all_sum_all(uvfits.size()) == 245886);
31 CHECK(comm.all_sum_all(vis.size()) == 245886);
38 std::vector<std::string>{filename +
".uvfits", filename +
".uvfits"}, comm);
40 CHECK(comm.all_sum_all(uvfits.size()) == 245886 * 2);
44 std::vector<std::string>{filename +
".vis", filename +
".vis"}, comm);
46 CHECK(comm.all_sum_all(vis.size()) == 245886 * 2);
52 #ifdef PURIFY_CASACORE
55 CHECK(comm.all_sum_all(ms.size()) == 245994);
59 #ifdef PURIFY_CASACORE
61 std::vector<std::string>{filename +
".ms", filename +
".ms"}, comm);
63 CHECK(comm.all_sum_all(ms.size()) == 245994 * 2);
72 const std::vector<double>
u = f.
read(
"u");
75 CHECK(comm.all_sum_all(
u.size()) == 245886 * comm.size());
80 const std::vector<double>
u = f.
distread(
"u");
83 CHECK(comm.all_sum_all(
u.size()) == 245886);
88 CAPTURE(uvfits.size());
89 CHECK(comm.all_sum_all(uvfits.size()) == 245886);
94 const size_t N = 10000;
96 const std::vector<double>
u = f.
stochread(
"u", N);
99 CHECK(comm.all_sum_all(
u.size()) == N * comm.size());
105 const size_t N = 10000;
108 CAPTURE(uvfits.size());
109 CHECK(comm.all_sum_all(uvfits.size()) == N * comm.size());
116 const size_t N = 10000;
118 using t_complexVec = Vector<t_complex>;
121 auto functor = [&f = h5file, &N]() {
123 auto phi = factory::measurement_operator_factory<t_complexVec>(
127 return sopt::IterationState<t_complexVec>(uv_data.
vis, phi);
131 sopt::IterationState<t_complexVec> item = functor();
134 const bool pass = comm.all_sum_all(item.target().size()) == N * comm.size() &&
135 item.Phi().sizes()[0] == 0 && item.Phi().sizes()[1] == 1 &&
136 item.Phi().sizes()[2] == N;
#define CHECK(CONDITION, ERROR)
Purify interface class to handle HDF5 input files.
std::vector< T > read(const std::string &label) const
Method to read the entire dataset.
std::vector< T > distread(const std::string &label)
std::vector< T > stochread(const std::string &label, size_t batchsize, bool shuffle=false)
const std::vector< t_real > u
data for u coordinate
utilities::vis_params stochread_visibility(H5Handler &file, const size_t N, const bool w_term)
Stochastically reads dataset slices from the supplied HDF5-file handler, constructs a vis_params obje...
const std::map< std::string, kernel > kernel_from_string
utilities::vis_params read_measurements(const std::string &name, const bool w_term, const stokes pol, const utilities::vis_units units)
read in single measurement file
std::string atca_filename(std::string const &filename)
Specific atca data.