Fixes and more tests
This commit is contained in:
parent
a7d0cefbb9
commit
fb774671ad
2 changed files with 84 additions and 17 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue