65 TestCompactProofs::addPrefilledProof(
67 TestCompactProofs::addPrefilledProof(
68 cp, std::numeric_limits<uint32_t>::max(),
74 auto prefilledProofs = TestCompactProofs::getPrefilledProofs(cp);
79 std::numeric_limits<uint32_t>::max());
82 auto checkCompactProof = [&](
size_t numofProof,
83 size_t numofPrefilledProof) {
85 for (
size_t i = 0; i < numofProof; i++) {
93 uint32_t prefilledProofIndex = 0;
94 for (
size_t i = 0; i < numofPrefilledProof; i++) {
95 TestCompactProofs::addPrefilledProof(
96 cpw, prefilledProofIndex++,
100 auto prefilledProofs = TestCompactProofs::getPrefilledProofs(cpw);
115 return lhs.
index == rhs.index &&
120 auto prefilledProofsCpr = TestCompactProofs::getPrefilledProofs(cpr);
122 prefilledProofsCpr.end(),
123 prefilledProofs.begin(), comparePrefilledProof));
125 auto shortIds = TestCompactProofs::getShortProofIds(cpr);
128 const ProofId &proofid = pLeaf->getId();
138 checkCompactProof(0, 0);
141 checkCompactProof(1000, 0);
144 checkCompactProof(0, 1000);
147 checkCompactProof(1000, 1000);
155 TestCompactProofs::addPrefilledProof(
157 TestCompactProofs::addPrefilledProof(
161 BOOST_CHECK_EXCEPTION(ss << cp, std::ios_base::failure,
162 HasReason(
"differential value overflow"));
168 TestCompactProofs::addPrefilledProof(
170 TestCompactProofs::addPrefilledProof(
174 BOOST_CHECK_EXCEPTION(ss << cp, std::ios_base::failure,
175 HasReason(
"differential value overflow"));
181 TestCompactProofs::addPrefilledProof(
182 cp, std::numeric_limits<uint32_t>::max(),
184 TestCompactProofs::addPrefilledProof(
188 BOOST_CHECK_EXCEPTION(ss << cp, std::ios_base::failure,
189 HasReason(
"differential value overflow"));
195 ss << uint64_t(0) << uint64_t(0);
200 BOOST_CHECK_EXCEPTION(ss >> cp, std::ios_base::failure,
201 HasReason(
"ReadCompactSize(): size too large"));
207 ss << uint64_t(0) << uint64_t(0);
214 BOOST_CHECK_EXCEPTION(ss >> cp, std::ios_base::failure,
215 HasReason(
"ReadCompactSize(): size too large"));
221 ss << uint64_t(0) << uint64_t(0);
232 BOOST_CHECK_EXCEPTION(ss >> cp, std::ios_base::failure,
233 HasReason(
"ReadCompactSize(): size too large"));
237 const uint64_t overflow =
238 uint64_t(std::numeric_limits<uint32_t>::max()) + 1;
241 BOOST_CHECK_GE(overflow,
MAX_SIZE + 1);
242 const uint64_t overflowIter = overflow / (
MAX_SIZE + 1);
245 BOOST_CHECK_LE(overflowIter, std::numeric_limits<uint32_t>::max());
246 BOOST_CHECK_LE(overflowIter,
MAX_SIZE);
247 uint32_t remainder = uint32_t(overflow - ((
MAX_SIZE + 1) * overflowIter));
252 ss << uint64_t(0) << uint64_t(0);
257 for (uint32_t i = 0; i < overflowIter; i++) {
268 BOOST_CHECK_EXCEPTION(ss >> cp, std::ios_base::failure,
269 HasReason(
"differential value overflow"));
275 ss << uint64_t(0) << uint64_t(0);
282 for (uint32_t i = 0; i < overflowIter; i++) {
295 BOOST_CHECK_EXCEPTION(ss >> cp, std::ios_base::failure,
296 HasReason(
"indexes overflowed 32 bits"));
302 ss << uint64_t(0) << uint64_t(0);
318 BOOST_CHECK_EXCEPTION(ss >> cp, std::ios_base::failure,
319 HasReason(
"non contiguous indexes"));