50TEST_CASE(
"Test 00 - to_string",
"[jau][string][to_string]" ) {
52 uint64_t u64_1 = 1116791496961ull;
53 void * p_v_1 = (
void *)0xAFFE;
54 float float_1 = 1.65f;
163 vec_int_1.push_back(1); vec_int_1.push_back(2); vec_int_1.push_back(3);
165 uint8_t* vec_int_citer_1B_ptr = (uint8_t*)(vec_int_citer_1B.operator->());
169 uint8_t* vec_int_citer_1E_ptr = (uint8_t*)(vec_int_citer_1E.operator->());
172 std::ptrdiff_t vec_int_citer_1E_1B_ptrdiff = vec_int_citer_1E_ptr - vec_int_citer_1B_ptr;
173 size_t vec_int_citer_1E_1B_ptr_count = vec_int_citer_1E_1B_ptrdiff /
sizeof(int);
174 size_t vec_int_citer_1E_1B_itr_count = vec_int_citer_1E - vec_int_citer_1B;
176 printf(
"vec_int_citer_1E - vec_int_citer_1B = itr_count %zu, ptr_count %zu\n",
177 vec_int_citer_1E_1B_itr_count, vec_int_citer_1E_1B_ptr_count);
178 printf(
"vec_int_citer_1E - vec_int_citer_1B = %zu\n", vec_int_citer_1E_1B_itr_count);
179 printf(
"vec_int_citer_1B_ptr %s, vec_int_citer_1E1_ptr = %s\n", vec_int_citer_1B_str.c_str(), vec_int_citer_1E_str.c_str());
181 CHECK(vec_int_citer_1E_1B_itr_count == 3);
182 CHECK(vec_int_citer_1E_1B_itr_count == vec_int_citer_1E_1B_ptr_count);
197static void testToBitString(std::string_view
prefix, std::string_view exp_be_s,
const uint64_t &exp_be_v,
size_t max_bits,
bool check_value=
true) {
198 std::cout <<
prefix <<
": max_bits " << max_bits <<
"\n";
200 std::cout <<
" exp_be_s : " << exp_be_s <<
"\n";
201 std::cout <<
" has_be_s1: " << has_be_s1 <<
"\n";
202 REQUIRE( exp_be_s == has_be_s1 );
206 REQUIRE(
true == ok_be);
207 REQUIRE(exp_be_s.size() == len_be);
209 std::cout <<
" has_be_s2: " << has_be_s2 <<
"\n";
210 REQUIRE(exp_be_v == has_be_v);
217TEST_CASE(
"Test 03 - toBitString()",
"[jau][string][toBitString]" ) {
219 testToBitString(
"Test 03.01.01",
"000101100101110111011001", 0b101100101110111011001_u64, 0);
220 testToBitString(
"Test 03.01.02",
"000101100101110111011001", 0b101100101110111011001_u64);
221 testToBitString(
"Test 03.01.03",
"101110111011001", 0b101100101110111011001_u64, 15,
false);
222 testToBitString(
"Test 03.01.04",
"00000000000101100101110111011001", 0b101100101110111011001_u64);
223 testToBitString(
"Test 03.01.05",
"000000000000101100101110111011001", 0b101100101110111011001_u64, 33);
225 testToBitString(
"Test 03.02.01",
"11011001011101110110011110001101", 0b11011001011101110110011110001101_u64, 0);
226 testToBitString(
"Test 03.02.02",
"11011001011101110110011110001101", 0b11011001011101110110011110001101_u64, 32);
227 testToBitString(
"Test 03.02.03",
"01011001011101110110011110001101", 0b01011001011101110110011110001101_u64, 0);
228 testToBitString(
"Test 03.02.04",
"01011001011101110110011110001101", 0b01011001011101110110011110001101_u64, 32);
229 testToBitString(
"Test 03.02.05",
"0101110111011001", 0b0101100101110111011001_u64, 16,
false);
231 testToBitString(
"Test 03.03.01",
"1101100101110111011001111000110111011001011101110110011110001101",
232 0b1101100101110111011001111000110111011001011101110110011110001101_u64, 0);
233 testToBitString(
"Test 03.03.02",
"1101100101110111011001111000110111011001011101110110011110001101",
234 0b1101100101110111011001111000110111011001011101110110011110001101_u64, 64);
236 testToBitString(
"Test 03.03.03",
"0101100101110111011001111000110111011001011101110110011110001101",
237 0b0101100101110111011001111000110111011001011101110110011110001101_u64, 0);
238 testToBitString(
"Test 03.03.04",
"0101100101110111011001111000110111011001011101110110011110001101",
239 0b0101100101110111011001111000110111011001011101110110011110001101_u64, 64);
241 testToBitString(
"Test 03.03.05",
"0001100101110111011001111000110111011001011101110110011110001101",
242 0b0001100101110111011001111000110111011001011101110110011110001101_u64, 0);
243 testToBitString(
"Test 03.03.06",
"0001100101110111011001111000110111011001011101110110011110001101",
244 0b0001100101110111011001111000110111011001011101110110011110001101_u64, 64);
246 testToBitString(
"Test 03.03.07",
"1111111111101010111101101011111000000000000000000000000000000000",
247 0b1111111111101010111101101011111000000000000000000000000000000000_u64, 0);
248 testToBitString(
"Test 03.03.08",
"1111111111101010111101101011111000000000000000000000000000000000",
249 0b1111111111101010111101101011111000000000000000000000000000000000_u64, 64);
252 0b0000000000000000000000000000000011111110101001111110101011110110_u64, 0);
253 testToBitString(
"Test 03.03.10",
"0000000000000000000000000000000011111110101001111110101011110110",
254 0b0000000000000000000000000000000011111110101001111110101011110110_u64, 64);
256 0b0000000000000000000000000000000011111110101001111110101011110110_u64, 33);
259 0b0000000000000000000000000000000000000000000000000000000000000000_u64, 0);
260 testToBitString(
"Test 03.03.13",
"0000000000000000000000000000000000000000000000000000000000000000",
261 0b0000000000000000000000000000000000000000000000000000000000000000_u64, 64);
std::string toBitString(const void *data, const nsize_t length, const bit_order_t bitOrder=bit_order_t::msb, const PrefixOpt prefix=PrefixOpt::prefix, size_t bit_len=0) noexcept
Produce a binary string representation of the given lsb-first byte values.
SizeBoolPair fromBitString(std::vector< uint8_t > &out, const uint8_t bitstr[], const size_t bitstr_len, const bit_order_t bitOrder=bit_order_t::msb, const Bool checkPrefix=Bool::True) noexcept
Converts a given binary string representation into a byte vector, lsb-first.
std::string toHexString(const void *data, const nsize_t length, const lb_endian_t byteOrder=lb_endian_t::big, const LoUpCase capitalization=LoUpCase::lower, const PrefixOpt prefix=PrefixOpt::prefix) noexcept
Produce a hexadecimal string representation of the given lsb-first byte values.