1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
#include "ismrmrd/ismrmrd.h"
#include "ismrmrd/version.h"
#include <boost/test/unit_test.hpp>
using namespace ISMRMRD;
BOOST_AUTO_TEST_SUITE(ChannelTest)
void fill_channels(uint64_t mask[ISMRMRD_CHANNEL_MASKS])
{
for (int i = 0; i < ISMRMRD_CHANNEL_MASKS; i++) {
mask[i] = 0xFFFFFFFFFFFFFFFF;
}
}
BOOST_AUTO_TEST_CASE(test_is_channel_on)
{
uint64_t channel_mask[ISMRMRD_CHANNEL_MASKS] = {0};
// TODO: this returns and ISMRMRD_RUNTIMEERROR, which casts to "true"
/* BOOST_CHECK_EQUAL(ismrmrd_is_channel_on(NULL, 0), false); */
for (int chan = 0; chan < 64 * ISMRMRD_CHANNEL_MASKS; chan++) {
BOOST_CHECK_EQUAL(ismrmrd_is_channel_on(channel_mask, chan), false);
}
fill_channels(channel_mask);
for (int chan = 0; chan < 64 * ISMRMRD_CHANNEL_MASKS; chan++) {
BOOST_CHECK_EQUAL(ismrmrd_is_channel_on(channel_mask, chan), true);
}
}
BOOST_AUTO_TEST_CASE(test_set_channel_on)
{
uint64_t channel_mask[ISMRMRD_CHANNEL_MASKS] = {0};
BOOST_CHECK_EQUAL(ismrmrd_set_channel_on(NULL, 0), ISMRMRD_RUNTIMEERROR);
for (int chan = 0; chan < 64 * ISMRMRD_CHANNEL_MASKS; chan++) {
BOOST_CHECK_EQUAL(ismrmrd_set_channel_on(channel_mask, chan), ISMRMRD_NOERROR);
uint64_t bitmask = static_cast<uint64_t>(1) << (chan % 64);
size_t offset = chan / 64;
BOOST_REQUIRE((channel_mask[offset] & bitmask) != 0);
}
}
BOOST_AUTO_TEST_CASE(test_set_channel_off)
{
uint64_t channel_mask[ISMRMRD_CHANNEL_MASKS] = {0};
fill_channels(channel_mask);
BOOST_CHECK_EQUAL(ismrmrd_set_channel_off(NULL, 0), ISMRMRD_RUNTIMEERROR);
for (int chan = 0; chan < 64 * ISMRMRD_CHANNEL_MASKS; chan++) {
BOOST_CHECK_EQUAL(ismrmrd_set_channel_off(channel_mask, chan), ISMRMRD_NOERROR);
uint64_t bitmask = static_cast<uint64_t>(1) << (chan % 64);
size_t offset = chan / 64;
BOOST_REQUIRE((channel_mask[offset] & bitmask) == 0);
}
}
BOOST_AUTO_TEST_CASE(test_set_all_channels_off)
{
uint64_t channel_mask[ISMRMRD_CHANNEL_MASKS] = {0};
fill_channels(channel_mask);
BOOST_CHECK_EQUAL(ismrmrd_set_all_channels_off(NULL), ISMRMRD_RUNTIMEERROR);
BOOST_CHECK_EQUAL(ismrmrd_set_all_channels_off(channel_mask), ISMRMRD_NOERROR);
for (int idx = 0; idx < ISMRMRD_CHANNEL_MASKS; idx++) {
BOOST_REQUIRE(channel_mask[idx] == 0);
}
}
BOOST_AUTO_TEST_SUITE_END()
|