113 testcase(
"base_uint: general purpose tests");
123 Blob const raw{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
128 BEAST_EXPECT(raw.size() == u.size());
129 BEAST_EXPECT(
to_string(u) ==
"0102030405060708090A0B0C");
131 BEAST_EXPECT(*u.data() == 1);
132 BEAST_EXPECT(u.signum() == 1);
134 BEAST_EXPECT(!u.isZero());
135 BEAST_EXPECT(u.isNonZero());
139 BEAST_EXPECT(d == ++t);
148 BEAST_EXPECT(w == u);
152 BEAST_EXPECT(
to_string(v) ==
"FEFDFCFBFAF9F8F7F6F5F4F3");
154 BEAST_EXPECT(*v.data() == 0xfe);
155 BEAST_EXPECT(v.signum() == 1);
157 BEAST_EXPECT(!v.isZero());
158 BEAST_EXPECT(v.isNonZero());
162 BEAST_EXPECT(d == --t);
169 BEAST_EXPECT(v == u);
173 BEAST_EXPECT(
to_string(z) ==
"000000000000000000000000");
175 BEAST_EXPECT(*z.data() == 0);
176 BEAST_EXPECT(*z.begin() == 0);
177 BEAST_EXPECT(*
std::prev(z.end(), 1) == 0);
178 BEAST_EXPECT(z.signum() == 0);
180 BEAST_EXPECT(z.isZero());
181 BEAST_EXPECT(!z.isNonZero());
184 BEAST_EXPECT(d == 0);
189 BEAST_EXPECT(n ==
test96(1));
191 BEAST_EXPECT(n == beast::zero);
192 BEAST_EXPECT(n == z);
194 BEAST_EXPECT(
to_string(n) ==
"FFFFFFFFFFFFFFFFFFFFFFFF");
197 BEAST_EXPECT(n == z);
203 test96 const x{zm1 ^ zp1};
208 BEAST_EXPECT(uset.
size() == 4);
212 BEAST_EXPECT(tmp == u);
228 x[i] = (
'G' + (i % 10));
255 static_assert(
test96(
"0").signum() == 0);
256 static_assert(
test96(
"000000000000000000000000").signum() == 0);
257 static_assert(
test96(
"000000000000000000000001").signum() == 1);
258 static_assert(
test96(
"800000000000000000000000").signum() == 1);
263 static_assert(
test96(
"00000000000000000000000").signum() == 0);
266 static_assert(
test96(
"0000000000000000000000000").signum() == 0);
269 static_assert(
test96(
"00000000000000000000000 ").signum() == 1);
270 static_assert(
test96(
"00000000000000000000000/").signum() == 1);
271 static_assert(
test96(
"00000000000000000000000:").signum() == 1);
272 static_assert(
test96(
"00000000000000000000000@").signum() == 1);
273 static_assert(
test96(
"00000000000000000000000G").signum() == 1);
274 static_assert(
test96(
"00000000000000000000000`").signum() == 1);
275 static_assert(
test96(
"00000000000000000000000g").signum() == 1);
276 static_assert(
test96(
"00000000000000000000000~").signum() == 1);
289 [[maybe_unused]]
test96 const t96(sView);
293 BEAST_EXPECT(e.
what() ==
std::string(
"invalid length for hex string"));
296 BEAST_EXPECT(caught);
307 [[maybe_unused]]
test96 const t96(sView);
314 BEAST_EXPECT(caught);
321 char const*
const str;
324 constexpr StrBaseUint(
char const* s) : str(s), tst(s)
328 constexpr StrBaseUint testCases[] = {
329 "000000000000000000000000",
330 "000000000000000000000001",
331 "fedcba9876543210ABCDEF91",
332 "19FEDCBA0123456789abcdef",
333 "800000000000000000000000",
334 "fFfFfFfFfFfFfFfFfFfFfFfF"};
336 for (StrBaseUint
const& t : testCases)
340 BEAST_EXPECT(t96 == t.tst);