@@ -30,29 +30,30 @@ static const uint64_t IGOLDEN64 = 0x9e3779b97f4a7c13ULL;
30
30
31
31
TEST_CASE (" pack unpack bits" ) {
32
32
for (uint8_t bits = 1 ; bits <= 63 ; ++bits) {
33
+ int n = 8 ;
33
34
const uint64_t mask = (1ULL << bits) - 1 ;
34
- std::vector<uint64_t > input (8 , 0 );
35
+ std::vector<uint64_t > input (n , 0 );
35
36
const uint64_t igolden64 = IGOLDEN64;
36
37
uint64_t value = 0xaa55aa55aa55aa55ULL ; // arbitrary starting value
37
- for (int i = 0 ; i < 8 ; ++i) {
38
+ for (int i = 0 ; i < n ; ++i) {
38
39
input[i] = value & mask;
39
40
value += igolden64;
40
41
}
41
- std::vector<uint8_t > bytes (8 * sizeof (uint64_t ), 0 );
42
+ std::vector<uint8_t > bytes (n * sizeof (uint64_t ), 0 );
42
43
uint8_t offset = 0 ;
43
44
uint8_t * ptr = bytes.data ();
44
- for (int i = 0 ; i < 8 ; ++i) {
45
+ for (int i = 0 ; i < n ; ++i) {
45
46
offset = pack_bits (input[i], bits, ptr, offset);
46
47
}
47
48
48
- std::vector<uint64_t > output (8 , 0 );
49
+ std::vector<uint64_t > output (n , 0 );
49
50
offset = 0 ;
50
51
const uint8_t * cptr = bytes.data ();
51
- for (int i = 0 ; i < 8 ; ++i) {
52
+ for (int i = 0 ; i < n ; ++i) {
52
53
offset = unpack_bits (output[i], bits, cptr, offset);
53
54
}
54
- for (int i = 0 ; i < 8 ; ++i) {
55
- REQUIRE (( input[i] & mask) == output[i]);
55
+ for (int i = 0 ; i < n ; ++i) {
56
+ REQUIRE (input[i] == output[i]);
56
57
}
57
58
}
58
59
}
0 commit comments