#include "catch2/catch_all.hpp"
#include "purify/mpi_utilities.h"
Go to the source code of this file.
|
| TEST_CASE ("Distribution of visibility data") |
|
◆ TEST_CASE()
TEST_CASE |
( |
"Distribution of visibility data" |
| ) |
|
Definition at line 7 of file parallel_mpi_utilities.cc.
8 auto const world = sopt::mpi::Communicator::World();
12 params.
u = Vector<t_real>::Random(N);
13 params.
v = Vector<t_real>::Random(N);
14 params.
w = Vector<t_real>::Random(N);
15 params.
vis = Vector<t_complex>::Random(N);
16 params.
weights = Vector<t_complex>::Random(N);
18 std::vector<t_int> order(N);
20 if (world.size() == 1)
return;
22 std::fill(order.begin() + 1, order.end(), 0);
25 if (world.rank() == 0) {
26 CHECK(actual.u.size() == 4);
27 CHECK(actual.u(0) == Approx(params.
u(N - 1)));
28 CHECK(actual.u.tail(N - 2).isApprox(params.
u.segment(1, N - 2)));
29 }
else if (world.rank() == 1) {
30 CHECK(actual.u.size() == 1);
31 CHECK(actual.u(0) == Approx(params.
u(0)));
33 CHECK(actual.u.size() == 0);
#define CHECK(CONDITION, ERROR)
vis_params regroup_and_scatter(vis_params const ¶ms, std::vector< t_int > const &groups, sopt::mpi::Communicator const &comm)
Vector< t_complex > weights
References CHECK, purify::utilities::regroup_and_scatter(), purify::utilities::vis_params::u, purify::utilities::vis_params::v, purify::utilities::vis_params::vis, purify::utilities::vis_params::w, and purify::utilities::vis_params::weights.