47TEST_CASE(
"Test 00 - to_string",
"[jau][string][to_string]" ) {
49 uint64_t u64_1 = 1116791496961ull;
50 void * p_v_1 = (
void *)0xAFFE;
51 float float_1 = 1.65f;
160 vec_int_1.push_back(1); vec_int_1.push_back(2); vec_int_1.push_back(3);
162 uint8_t* vec_int_citer_1B_ptr = (uint8_t*)(vec_int_citer_1B.operator->());
166 uint8_t* vec_int_citer_1E_ptr = (uint8_t*)(vec_int_citer_1E.operator->());
169 std::ptrdiff_t vec_int_citer_1E_1B_ptrdiff = vec_int_citer_1E_ptr - vec_int_citer_1B_ptr;
170 size_t vec_int_citer_1E_1B_ptr_count = vec_int_citer_1E_1B_ptrdiff /
sizeof(int);
171 size_t vec_int_citer_1E_1B_itr_count = vec_int_citer_1E - vec_int_citer_1B;
173 printf(
"vec_int_citer_1E - vec_int_citer_1B = itr_count %zu, ptr_count %zu\n",
174 vec_int_citer_1E_1B_itr_count, vec_int_citer_1E_1B_ptr_count);
175 printf(
"vec_int_citer_1E - vec_int_citer_1B = %zu\n", vec_int_citer_1E_1B_itr_count);
176 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());
178 CHECK(vec_int_citer_1E_1B_itr_count == 3);
179 CHECK(vec_int_citer_1E_1B_itr_count == vec_int_citer_1E_1B_ptr_count);
194static 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) {
195 std::cout <<
prefix <<
": max_bits " << max_bits <<
"\n";
197 std::cout <<
" exp_be_s : " << exp_be_s <<
"\n";
198 std::cout <<
" has_be_s1: " << has_be_s1 <<
"\n";
199 REQUIRE( exp_be_s == has_be_s1 );
203 REQUIRE(
true == ok_be);
204 REQUIRE(exp_be_s.size() == len_be);
206 std::cout <<
" has_be_s2: " << has_be_s2 <<
"\n";
207 REQUIRE(exp_be_v == has_be_v);
214TEST_CASE(
"Test 03 - toBitString()",
"[jau][string][toBitString]" ) {
216 testToBitString(
"Test 03.01.01",
"000101100101110111011001", 0b101100101110111011001_u64, 0);
217 testToBitString(
"Test 03.01.02",
"000101100101110111011001", 0b101100101110111011001_u64);
218 testToBitString(
"Test 03.01.03",
"101110111011001", 0b101100101110111011001_u64, 15,
false);
219 testToBitString(
"Test 03.01.04",
"00000000000101100101110111011001", 0b101100101110111011001_u64);
220 testToBitString(
"Test 03.01.05",
"000000000000101100101110111011001", 0b101100101110111011001_u64, 33);
222 testToBitString(
"Test 03.02.01",
"11011001011101110110011110001101", 0b11011001011101110110011110001101_u64, 0);
223 testToBitString(
"Test 03.02.02",
"11011001011101110110011110001101", 0b11011001011101110110011110001101_u64, 32);
224 testToBitString(
"Test 03.02.03",
"01011001011101110110011110001101", 0b01011001011101110110011110001101_u64, 0);
225 testToBitString(
"Test 03.02.04",
"01011001011101110110011110001101", 0b01011001011101110110011110001101_u64, 32);
226 testToBitString(
"Test 03.02.05",
"0101110111011001", 0b0101100101110111011001_u64, 16,
false);
228 testToBitString(
"Test 03.03.01",
"1101100101110111011001111000110111011001011101110110011110001101",
229 0b1101100101110111011001111000110111011001011101110110011110001101_u64, 0);
230 testToBitString(
"Test 03.03.02",
"1101100101110111011001111000110111011001011101110110011110001101",
231 0b1101100101110111011001111000110111011001011101110110011110001101_u64, 64);
233 testToBitString(
"Test 03.03.03",
"0101100101110111011001111000110111011001011101110110011110001101",
234 0b0101100101110111011001111000110111011001011101110110011110001101_u64, 0);
235 testToBitString(
"Test 03.03.04",
"0101100101110111011001111000110111011001011101110110011110001101",
236 0b0101100101110111011001111000110111011001011101110110011110001101_u64, 64);
238 testToBitString(
"Test 03.03.05",
"0001100101110111011001111000110111011001011101110110011110001101",
239 0b0001100101110111011001111000110111011001011101110110011110001101_u64, 0);
240 testToBitString(
"Test 03.03.06",
"0001100101110111011001111000110111011001011101110110011110001101",
241 0b0001100101110111011001111000110111011001011101110110011110001101_u64, 64);
243 testToBitString(
"Test 03.03.07",
"1111111111101010111101101011111000000000000000000000000000000000",
244 0b1111111111101010111101101011111000000000000000000000000000000000_u64, 0);
245 testToBitString(
"Test 03.03.08",
"1111111111101010111101101011111000000000000000000000000000000000",
246 0b1111111111101010111101101011111000000000000000000000000000000000_u64, 64);
249 0b0000000000000000000000000000000011111110101001111110101011110110_u64, 0);
250 testToBitString(
"Test 03.03.10",
"0000000000000000000000000000000011111110101001111110101011110110",
251 0b0000000000000000000000000000000011111110101001111110101011110110_u64, 64);
253 0b0000000000000000000000000000000011111110101001111110101011110110_u64, 33);
256 0b0000000000000000000000000000000000000000000000000000000000000000_u64, 0);
257 testToBitString(
"Test 03.03.13",
"0000000000000000000000000000000000000000000000000000000000000000",
258 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.
static 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)