Fixes and more tests

This commit is contained in:
King_DuckZ 2018-11-20 09:26:17 +00:00
parent a7d0cefbb9
commit fb774671ad
2 changed files with 84 additions and 17 deletions

View file

@ -20,16 +20,61 @@
#include <cstdint>
TEST_CASE ("Check correctness in BitfieldPack", "[BitfieldPack][containers]") {
dhandy::BitfieldPack<uint8_t, 4, 7, 1> pack(0xAA);
CHECK(sizeof(pack) == sizeof(uint8_t) * 2);
using dhandy::set;
using dhandy::get;
CHECK(dhandy::get<0>(pack) == 0b1010U);
CHECK(dhandy::get<1>(pack) == 0b0101010U);
CHECK(dhandy::get<2>(pack) == 0b1U);
{
dhandy::BitfieldPack<uint8_t, 4, 7, 1> pack(0xAA);
CHECK(sizeof(pack) == sizeof(uint8_t) * 2);
dhandy::set<0>(pack, 2);
CHECK(dhandy::get<0>(pack) == 2);
dhandy::set<1>(pack, 50);
CHECK(dhandy::get<1>(pack) == 50);
CHECK(dhandy::get<2>(pack) == 0b1U);
CHECK(get<0>(pack) == 0b1010U);
CHECK(get<1>(pack) == 0b0101010U);
CHECK(get<2>(pack) == 0b1U);
set<0>(pack, 2);
CHECK(get<0>(pack) == 2);
set<1>(pack, 50);
CHECK(get<1>(pack) == 50);
CHECK(get<2>(pack) == 0b1U);
CHECK(get<0>(pack) == 2);
}
{
dhandy::BitfieldPack<uint16_t, 16, 5, 8, 11, 3, 1, 1> pack;
set<6>(pack, 1);
CHECK(get<0>(pack) == 0);
CHECK(get<1>(pack) == 0);
CHECK(get<2>(pack) == 0);
CHECK(get<3>(pack) == 0);
CHECK(get<4>(pack) == 0);
CHECK(get<5>(pack) == 0);
CHECK(get<6>(pack) == 1);
set<6>(pack, 0);
CHECK(get<6>(pack) == 0);
set<6>(pack, 1);
set<1>(pack, 5);
CHECK(get<0>(pack) == 0);
CHECK(get<1>(pack) == 5);
CHECK(get<2>(pack) == 0);
CHECK(get<3>(pack) == 0);
CHECK(get<4>(pack) == 0);
CHECK(get<5>(pack) == 0);
CHECK(get<6>(pack) == 1);
set<1>(pack, 0);
CHECK(get<1>(pack) == 0);
set<6>(pack, 1);
set<1>(pack, 5);
set<3>(pack, 0b10011001101);
CHECK(get<0>(pack) == 0);
CHECK(get<1>(pack) == 5);
CHECK(get<2>(pack) == 0);
CHECK(get<3>(pack) == 0b10011001101);
CHECK(get<4>(pack) == 0);
CHECK(get<5>(pack) == 0);
CHECK(get<6>(pack) == 1);
}
}