Add constexpr constructor for base_uint

This commit is contained in:
Scott Schurr
2021-01-13 10:42:17 -08:00
committed by Nik Bougalis
parent 95426efb8a
commit 85307b29d0
10 changed files with 215 additions and 131 deletions

View File

@@ -139,16 +139,15 @@ public:
tests::TestNodeFamily f(journal);
// h3 and h4 differ only in the leaf, same terminal node (level 19)
uint256 h1, h2, h3, h4, h5;
(void)h1.parseHex(
constexpr uint256 h1(
"092891fe4ef6cee585fdc6fda0e09eb4d386363158ec3321b8123e5a772c6ca7");
(void)h2.parseHex(
constexpr uint256 h2(
"436ccbac3347baa1f1e53baeef1f43334da88f1f6d70d963b833afd6dfa289fe");
(void)h3.parseHex(
constexpr uint256 h3(
"b92891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6ca8");
(void)h4.parseHex(
constexpr uint256 h4(
"b92891fe4ef6cee585fdc6fda2e09eb4d386363158ec3321b8123e5a772c6ca8");
(void)h5.parseHex(
constexpr uint256 h5(
"a92891fe4ef6cee585fdc6fda0e09eb4d386363158ec3321b8123e5a772c6ca7");
SHAMap sMap(SHAMapType::FREE, f);
@@ -223,57 +222,41 @@ public:
else
testcase("build/tear unbacked");
{
std::vector<uint256> keys(8);
(void)keys[0].parseHex(
"b92891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[1].parseHex(
"b92881fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[2].parseHex(
"b92691fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[3].parseHex(
"b92791fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[4].parseHex(
"b91891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[5].parseHex(
"b99891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[6].parseHex(
"f22891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[7].parseHex(
"292891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
constexpr std::array keys{
uint256("b92891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92881fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92691fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92791fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b91891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b99891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("f22891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("292891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8")};
std::vector<uint256> hashes(8);
(void)hashes[0].parseHex(
"B7387CFEA0465759ADC718E8C42B52D2309D179B326E239EB5075C64B6281F"
"7F");
(void)hashes[1].parseHex(
"FBC195A9592A54AB44010274163CB6BA95F497EC5BA0A8831845467FB2ECE2"
"66");
(void)hashes[2].parseHex(
"4E7D2684B65DFD48937FFB775E20175C43AF0C94066F7D5679F51AE756795B"
"75");
(void)hashes[3].parseHex(
"7A2F312EB203695FFD164E038E281839EEF06A1B99BFC263F3CECC6C74F93E"
"07");
(void)hashes[4].parseHex(
"395A6691A372387A703FB0F2C6D2C405DAF307D0817F8F0E207596462B0E3A"
"3E");
(void)hashes[5].parseHex(
"D044C0A696DE3169CC70AE216A1564D69DE96582865796142CE7D98A84D9DD"
"E4");
(void)hashes[6].parseHex(
"76DCC77C4027309B5A91AD164083264D70B77B5E43E08AEDA5EBF943611436"
"15");
(void)hashes[7].parseHex(
"DF4220E93ADC6F5569063A01B4DC79F8DB9553B6A3222ADE23DEA02BBE7230"
"E5");
constexpr std::array hashes{
uint256("B7387CFEA0465759ADC718E8C42B52D2309D179B326E239EB5075C"
"64B6281F7F"),
uint256("FBC195A9592A54AB44010274163CB6BA95F497EC5BA0A883184546"
"7FB2ECE266"),
uint256("4E7D2684B65DFD48937FFB775E20175C43AF0C94066F7D5679F51A"
"E756795B75"),
uint256("7A2F312EB203695FFD164E038E281839EEF06A1B99BFC263F3CECC"
"6C74F93E07"),
uint256("395A6691A372387A703FB0F2C6D2C405DAF307D0817F8F0E207596"
"462B0E3A3E"),
uint256("D044C0A696DE3169CC70AE216A1564D69DE96582865796142CE7D9"
"8A84D9DDE4"),
uint256("76DCC77C4027309B5A91AD164083264D70B77B5E43E08AEDA5EBF9"
"4361143615"),
uint256("DF4220E93ADC6F5569063A01B4DC79F8DB9553B6A3222ADE23DEA0"
"2BBE7230E5")};
SHAMap map(SHAMapType::FREE, f);
if (!backed)
@@ -303,31 +286,23 @@ public:
testcase("iterate unbacked");
{
std::vector<uint256> keys(8);
(void)keys[0].parseHex(
"f22891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[1].parseHex(
"b99891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[2].parseHex(
"b92891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[3].parseHex(
"b92881fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[4].parseHex(
"b92791fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[5].parseHex(
"b92691fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[6].parseHex(
"b91891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
(void)keys[7].parseHex(
"292891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e5a772c6c"
"a8");
constexpr std::array keys{
uint256("f22891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b99891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92881fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92791fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b92691fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("b91891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8"),
uint256("292891fe4ef6cee585fdc6fda1e09eb4d386363158ec3321b8123e"
"5a772c6ca8")};
tests::TestNodeFamily tf{journal};
SHAMap map{SHAMapType::FREE, tf};