16            except<std::runtime_error>(
 
   25                BEAST_EXPECT(shouldBeInvalid == 
sfInvalid);
 
   27            testInvalid(STI_VL, 255);
 
   28            testInvalid(STI_UINT256, 255);
 
   29            testInvalid(STI_UINT32, 255);
 
   30            testInvalid(STI_VECTOR256, 255);
 
   31            testInvalid(STI_OBJECT, 255);
 
   35            except<std::runtime_error>(
 
   40            except<std::runtime_error>([&]() {
 
   49        SField const& sfTestVL = sfMasterSignature;
 
   50        SField const& sfTestH256 = sfCheckID;
 
   51        SField const& sfTestU32 = sfSettleDelay;
 
   52        SField const& sfTestV256 = sfAmendments;
 
   53        SField const& sfTestObject = sfMajority;
 
   63        STObject object1(elements, sfTestObject);
 
   86            fail(
"STObject error 4");
 
  107        unexpected(copy.isFieldPresent(sfTestH256), 
"STObject error 9");
 
  111            "STObject error 10");
 
  113        copy.setFieldU32(sfTestU32, 1);
 
  117            "STObject error 11");
 
  119        for (
int i = 0; i < 1000; i++)
 
  129            STObject object3(elements, it, sfTestObject);
 
  139            for (
int i = 0; i < uints.
capacity(); ++i)
 
  149            STObject object3(elements, it, sfTestObject);
 
  154            BEAST_EXPECT(uints1 == uints3);
 
 
  164        auto const& sf1Outer = sfSequence;
 
  165        auto const& sf2Outer = sfExpiration;
 
  166        auto const& sf3Outer = sfQualityIn;
 
  167        auto const& sf4Outer = sfAmount;
 
  168        auto const& sf4 = sfSignature;
 
  169        auto const& sf5 = sfPublicKey;
 
  174            auto const st = [&]() {
 
  181            BEAST_EXPECT(st[sf1Outer] == 1);
 
  182            BEAST_EXPECT(st[sf2Outer] == 2);
 
  183            except<STObject::FieldErr>([&]() { st[sf3Outer]; });
 
  184            BEAST_EXPECT(*st[~sf1Outer] == 1);
 
  185            BEAST_EXPECT(*st[~sf2Outer] == 2);
 
  187            BEAST_EXPECT(!!st[~sf1Outer]);
 
  188            BEAST_EXPECT(!!st[~sf2Outer]);
 
  189            BEAST_EXPECT(!st[~sf3Outer]);
 
  190            BEAST_EXPECT(st[sf1Outer] != st[sf2Outer]);
 
  191            BEAST_EXPECT(st[~sf1Outer] != st[~sf2Outer]);
 
  205            auto const st = [&]() {
 
  212            BEAST_EXPECT(st[sf1Outer] == 1);
 
  213            BEAST_EXPECT(st[sf2Outer] == 2);
 
  214            BEAST_EXPECT(st[sf3Outer] == 0);
 
  215            BEAST_EXPECT(*st[~sf1Outer] == 1);
 
  216            BEAST_EXPECT(*st[~sf2Outer] == 2);
 
  217            BEAST_EXPECT(*st[~sf3Outer] == 0);
 
  218            BEAST_EXPECT(!!st[~sf1Outer]);
 
  219            BEAST_EXPECT(!!st[~sf2Outer]);
 
  220            BEAST_EXPECT(!!st[~sf3Outer]);
 
  228            except([&]() { 
return st[sf1Outer] == 0; });
 
  232            BEAST_EXPECT(!st[~sf1Outer]);
 
  234            BEAST_EXPECT(st[sf1Outer] == 2);
 
  237            BEAST_EXPECT(!!st[~sf1Outer]);
 
  239            BEAST_EXPECT(st[sf1Outer] == 1);
 
  240            BEAST_EXPECT(!!st[sf1Outer]);
 
  241            BEAST_EXPECT(!!st[~sf1Outer]);
 
  243            BEAST_EXPECT(!st[sf1Outer]);
 
  244            BEAST_EXPECT(!!st[~sf1Outer]);
 
  246            BEAST_EXPECT(!st[~sf1Outer]);
 
  250            BEAST_EXPECT(!st[~sf1Outer]);
 
  251            except([&]() { 
return st[sf1Outer] == 0; });
 
  252            except([&]() { 
return *st[~sf1Outer]; });
 
  254            BEAST_EXPECT(st[sf1Outer] == 1);
 
  255            BEAST_EXPECT(!!st[sf1Outer]);
 
  256            BEAST_EXPECT(!!st[~sf1Outer]);
 
  258            st[sf2Outer] = st[sf1Outer];
 
  259            BEAST_EXPECT(st[sf1Outer] == 3);
 
  260            BEAST_EXPECT(st[sf2Outer] == 3);
 
  261            BEAST_EXPECT(st[sf2Outer] == st[sf1Outer]);
 
  263            st[sf2Outer] = st[sf1Outer];
 
  264            BEAST_EXPECT(st[sf1Outer] == 4);
 
  265            BEAST_EXPECT(st[sf2Outer] == 4);
 
  266            BEAST_EXPECT(st[sf2Outer] == st[sf1Outer]);
 
  268            BEAST_EXPECT(st[sf1Outer] == 5);
 
  270            BEAST_EXPECT(st[sf4Outer] == 
STAmount{1});
 
  272            BEAST_EXPECT(st[sf4Outer] == 
STAmount{2});
 
  274            BEAST_EXPECT(st[sf1Outer] == 4);
 
  276            BEAST_EXPECT(st[sf4Outer] == 
STAmount{1});
 
  283            BEAST_EXPECT(!!st[~sf1Outer]);
 
  285            BEAST_EXPECT(st[sf1Outer] == 0);
 
  286            BEAST_EXPECT(*st[~sf1Outer] == 0);
 
  287            BEAST_EXPECT(!st[~sf2Outer]);
 
  289            except([&]() { 
return st[sf2Outer] == 0; });
 
  290            BEAST_EXPECT(!!st[~sf3Outer]);
 
  292            BEAST_EXPECT(st[sf3Outer] == 0);
 
  295            BEAST_EXPECT(st[sf1Outer] == 1);
 
  296            BEAST_EXPECT(*st[~sf1Outer] == 1);
 
  297            BEAST_EXPECT(!!st[~sf1Outer]);
 
  299            BEAST_EXPECT(st[sf1Outer] == 0);
 
  300            BEAST_EXPECT(*st[~sf1Outer] == 0);
 
  301            BEAST_EXPECT(!!st[~sf1Outer]);
 
  303            BEAST_EXPECT(st[sf2Outer] == 2);
 
  304            BEAST_EXPECT(*st[~sf2Outer] == 2);
 
  305            BEAST_EXPECT(!!st[~sf2Outer]);
 
  307            except([&]() { 
return *st[~sf2Outer]; });
 
  308            BEAST_EXPECT(!st[~sf2Outer]);
 
  310            BEAST_EXPECT(st[sf3Outer] == 3);
 
  311            BEAST_EXPECT(*st[~sf3Outer] == 3);
 
  312            BEAST_EXPECT(!!st[~sf3Outer]);
 
  314            BEAST_EXPECT(st[sf3Outer] == 2);
 
  315            BEAST_EXPECT(*st[~sf3Outer] == 2);
 
  316            BEAST_EXPECT(!!st[~sf3Outer]);
 
  318            BEAST_EXPECT(st[sf3Outer] == 0);
 
  319            BEAST_EXPECT(*st[~sf3Outer] == 0);
 
  320            BEAST_EXPECT(!!st[~sf3Outer]);
 
  322            BEAST_EXPECT(st[sf3Outer] == 0);
 
  323            BEAST_EXPECT(*st[~sf3Outer] == 0);
 
  324            BEAST_EXPECT(!!st[~sf3Outer]);
 
  326            BEAST_EXPECT(st[sf1Outer] == 1);
 
  328            BEAST_EXPECT(st[sf4Outer] == 
STAmount{1});
 
  330            BEAST_EXPECT(st[sf4Outer] == 
STAmount{2});
 
  332            BEAST_EXPECT(st[sf1Outer] == 0);
 
  334            BEAST_EXPECT(st[sf4Outer] == 
STAmount{1});
 
  341            auto const v = ~st[~sf1Outer];
 
  367                BEAST_EXPECT(!b.
empty());
 
  368                st[sf4] = std::move(b);
 
  369                BEAST_EXPECT(b.
empty());
 
  370                BEAST_EXPECT(
Slice(st[sf4]).size() == 1);
 
  372                BEAST_EXPECT(!~st[~sf4]);
 
  375                BEAST_EXPECT(b.
size() == 2);
 
  376                BEAST_EXPECT(
Slice(st[sf4]).size() == 2);
 
  378                BEAST_EXPECT(
Slice(st[sf4]).size() == 2);
 
  379                BEAST_EXPECT(
Slice(st[sf5]).size() == 2);
 
  383                BEAST_EXPECT(st[sf5] == 
Slice{});
 
  384                BEAST_EXPECT(!!st[~sf5]);
 
  385                BEAST_EXPECT(!!~st[~sf5]);
 
  387                st[sf5] = std::move(b);
 
  388                BEAST_EXPECT(b.
empty());
 
  389                BEAST_EXPECT(
Slice(st[sf5]).size() == 1);
 
  391                BEAST_EXPECT(!~st[~sf4]);
 
  399            BEAST_EXPECT(!st[~sf5]);
 
  409            auto const& sf = sfIndexes;
 
  415            st[sf] = std::move(v);
 
  416            auto const& cst = st;
 
  417            BEAST_EXPECT(cst[sf].size() == 2);
 
  418            BEAST_EXPECT(cst[~sf]->size() == 2);
 
  419            BEAST_EXPECT(cst[sf][0] == 1);
 
  420            BEAST_EXPECT(cst[sf][1] == 2);
 
  423                    decltype(cst[sfIndexes]),
 
  431            auto const& sf1 = sfIndexes;
 
  432            auto const& sf2 = sfHashes;
 
  433            auto const& sf3 = sfAmendments;
 
  442            BEAST_EXPECT(cst[sf1].size() == 0);
 
  443            BEAST_EXPECT(!cst[~sf2]);
 
  444            BEAST_EXPECT(cst[sf3].size() == 0);
 
  448            BEAST_EXPECT(cst[sf1].size() == 1);
 
  449            BEAST_EXPECT(cst[sf1][0] == 
uint256{1});
 
  451            BEAST_EXPECT(cst[sf2].size() == 1);
 
  452            BEAST_EXPECT(cst[sf2][0] == 
uint256{1});
 
  454            BEAST_EXPECT(!st[~sf2]);
 
  456            BEAST_EXPECT(cst[sf3].size() == 1);
 
  457            BEAST_EXPECT(cst[sf3][0] == 
uint256{1});
 
  459            BEAST_EXPECT(cst[sf3].size() == 0);