204TEST_CASE(
"single_conversion",
"[jau][std::string][jau::cfmt]") {
207 int32_t i32_u = 1234;
211 void *p1a = (
void *)0xaabbccdd_u64;
212 void *p1b = (
void *)0x11223344aabbccdd_u64;
213 void *p2a = (
void *)0x112233aabbccdd_u64;
214 void *p2b = (
void *)0xaabbcc_u64;
215 void *p3a = (
void *)0x112233aabbccdd_u64;
216 void *p3b = (
void *)0xaabbcc_u64;
217 const char sl1[] =
"Hallo";
218 std::string s2 =
"World";
219 std::string_view s2sv = s2;
220 const char *s2p = s2.c_str();
223 double value = 123.45;
224 const int expval = std::ilogb(
value);
225 const double frac =
value / std::scalbn(1.0, expval);
227 fprintf(stderr,
"JAU:10 v %f = %f * 2^%d -> 0x%0" PRIx64
"p%d\n",
value, frac, expval, significand, expval);
230 fprintf(stderr,
"JAU:11 v %f = %f * 2^%d -> 0x%0" PRIx64
"p%d\n",
value, frac, expval2, significand, expval2);
233 float value = 123.45f;
234 const int expval = std::ilogb(
value);
235 const double frac =
value / std::scalbn(1.0, expval);
237 fprintf(stderr,
"JAU:20 v %f = %f * 2^%d -> 0x%0" PRIx32
"p%d\n",
value, frac, expval, significand, expval);
240 fprintf(stderr,
"JAU:21 v %f = %f * 2^%d -> 0x%0" PRIx32
"p%d\n",
value, frac, expval2, significand, expval2);
243 float ivalue = 123.45f;
244 double value = ivalue;
245 const int expval = std::ilogb(
value);
246 const double frac =
value / std::scalbn(1.0, expval);
248 fprintf(stderr,
"JAU:30 v %f = %f * 2^%d -> 0x%0" PRIx64
"p%d\n",
value, frac, expval, significand, expval);
251 fprintf(stderr,
"JAU:31 v %f = %f * 2^%d -> 0x%0" PRIx64
"p%d\n",
value, frac, expval2, significand, expval2);
272 checkFormat(__LINE__,
"p3b %p %0p", &i32_u, &i32_u);
321 const char *str =
nullptr;
323 const char limiter =
'3';
324 const char *limiter_pos =
nullptr;
325 char *endptr =
nullptr;
327 jau_string_check(
"Value end not '%c' @ idx %zd, %p != %p, in: %p '%s' len %zu", limiter, endptr - str, endptr, limiter_pos, str, str, str_len);
328 jau_string_checkLine(
"Value end not '%c' @ idx %zd, %p != %p, in: %p '%s' len %zu", limiter, endptr - str, endptr, limiter_pos, str, str, str_len);
342 enum enum1_unsigned_t { jau1_alpha, jau1_beta, jau1_gamma };
343 enum1_unsigned_t e1_u = jau1_alpha;
345 enum enum2_signed_t { jau2_alpha=-1, jau_beta, jau_gamma };
346 enum2_signed_t e2_s = jau2_alpha;
348 enum class enum3_signed_t { alpha=-1, beta, gamma };
349 enum3_signed_t e3_s = enum3_signed_t::alpha;
355 enum4_unsigned_t e4_u = jau_CAP_CLEAR;
357 static_assert(
true == std::is_enum_v<
decltype(e1_u)>);
358 static_assert(
true == std::is_unsigned_v<std::underlying_type_t<
decltype(e1_u)>>);
360 static_assert(
true == std::is_enum_v<
decltype(e2_s)>);
361 static_assert(
true == std::is_signed_v<std::underlying_type_t<
decltype(e2_s)>>);
363 static_assert(
true == std::is_enum_v<
decltype(e3_s)>);
364 static_assert(
true == std::is_signed_v<std::underlying_type_t<
decltype(e3_s)>>);
366 static_assert(
true == std::is_enum_v<
decltype(e4_u)>);
367 static_assert(
true == std::is_unsigned_v<std::underlying_type_t<
decltype(e4_u)>>);
372 static_assert(4 ==
jau::cfmt::check(
"%u, %d, %d, %u\n", e1_u, e2_s, e3_s, e4_u));