Changeset View
Changeset View
Standalone View
Standalone View
src/test/bloom_tests.cpp
Show First 20 Lines • Show All 371 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(merkle_block_1) { | ||||
// Match the last transaction | // Match the last transaction | ||||
filter.insert(uint256S( | filter.insert(uint256S( | ||||
"0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b586ec87451f20")); | "0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b586ec87451f20")); | ||||
CMerkleBlock merkleBlock(block, filter); | CMerkleBlock merkleBlock(block, filter); | ||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | ||||
std::pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0]; | std::pair<unsigned int, TxId> pair = merkleBlock.vMatchedTxn[0]; | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | ||||
uint256S("0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b" | uint256S("0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b" | ||||
"586ec87451f20")); | "586ec87451f20")); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 8); | BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 8); | ||||
std::vector<uint256> vMatched; | std::vector<TxId> vMatched; | ||||
std::vector<unsigned int> vIndex; | std::vector<unsigned int> vIndex; | ||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | ||||
block.hashMerkleRoot); | block.hashMerkleRoot); | ||||
BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | ||||
for (unsigned int i = 0; i < vMatched.size(); i++) | for (unsigned int i = 0; i < vMatched.size(); i++) | ||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | ||||
// Also match the 8th transaction | // Also match the 8th transaction | ||||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(merkle_block_2) { | ||||
// Match the first transaction | // Match the first transaction | ||||
filter.insert(uint256S( | filter.insert(uint256S( | ||||
"0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70")); | "0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70")); | ||||
CMerkleBlock merkleBlock(block, filter); | CMerkleBlock merkleBlock(block, filter); | ||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | ||||
std::pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0]; | std::pair<unsigned int, TxId> pair = merkleBlock.vMatchedTxn[0]; | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | ||||
uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df" | uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df" | ||||
"5b47aecb93b70")); | "5b47aecb93b70")); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0); | BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0); | ||||
std::vector<uint256> vMatched; | std::vector<TxId> vMatched; | ||||
std::vector<unsigned int> vIndex; | std::vector<unsigned int> vIndex; | ||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | ||||
block.hashMerkleRoot); | block.hashMerkleRoot); | ||||
BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | ||||
for (unsigned int i = 0; i < vMatched.size(); i++) | for (unsigned int i = 0; i < vMatched.size(); i++) | ||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | ||||
// Match an output from the second transaction (the pubkey for address | // Match an output from the second transaction (the pubkey for address | ||||
▲ Show 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(merkle_block_2_with_update_none) { | ||||
// Match the first transaction | // Match the first transaction | ||||
filter.insert(uint256S( | filter.insert(uint256S( | ||||
"0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70")); | "0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70")); | ||||
CMerkleBlock merkleBlock(block, filter); | CMerkleBlock merkleBlock(block, filter); | ||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | ||||
std::pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0]; | std::pair<unsigned int, TxId> pair = merkleBlock.vMatchedTxn[0]; | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | ||||
uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df" | uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df" | ||||
"5b47aecb93b70")); | "5b47aecb93b70")); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0); | BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0); | ||||
std::vector<uint256> vMatched; | std::vector<TxId> vMatched; | ||||
std::vector<unsigned int> vIndex; | std::vector<unsigned int> vIndex; | ||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | ||||
block.hashMerkleRoot); | block.hashMerkleRoot); | ||||
BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | ||||
for (unsigned int i = 0; i < vMatched.size(); i++) | for (unsigned int i = 0; i < vMatched.size(); i++) | ||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | ||||
// Match an output from the second transaction (the pubkey for address | // Match an output from the second transaction (the pubkey for address | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(merkle_block_3_and_serialize) { | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | ||||
uint256S("0x63194f18be0af63f2c6bc9dc0f777cbefed3d9415c4af83f3ee" | uint256S("0x63194f18be0af63f2c6bc9dc0f777cbefed3d9415c4af83f3ee" | ||||
"3a3d669c00cb5")); | "3a3d669c00cb5")); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0); | BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0); | ||||
std::vector<uint256> vMatched; | std::vector<TxId> vMatched; | ||||
std::vector<unsigned int> vIndex; | std::vector<unsigned int> vIndex; | ||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | ||||
block.hashMerkleRoot); | block.hashMerkleRoot); | ||||
BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | ||||
for (unsigned int i = 0; i < vMatched.size(); i++) | for (unsigned int i = 0; i < vMatched.size(); i++) | ||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | ||||
CDataStream merkleStream(SER_NETWORK, PROTOCOL_VERSION); | CDataStream merkleStream(SER_NETWORK, PROTOCOL_VERSION); | ||||
▲ Show 20 Lines • Show All 105 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(merkle_block_4) { | ||||
// Match the last transaction | // Match the last transaction | ||||
filter.insert(uint256S( | filter.insert(uint256S( | ||||
"0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f19b15df0ac154")); | "0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f19b15df0ac154")); | ||||
CMerkleBlock merkleBlock(block, filter); | CMerkleBlock merkleBlock(block, filter); | ||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash()); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1); | ||||
std::pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0]; | std::pair<unsigned int, TxId> pair = merkleBlock.vMatchedTxn[0]; | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == | ||||
uint256S("0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f" | uint256S("0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f" | ||||
"19b15df0ac154")); | "19b15df0ac154")); | ||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 6); | BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 6); | ||||
std::vector<uint256> vMatched; | std::vector<TxId> vMatched; | ||||
std::vector<unsigned int> vIndex; | std::vector<unsigned int> vIndex; | ||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched, vIndex) == | ||||
block.hashMerkleRoot); | block.hashMerkleRoot); | ||||
BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | BOOST_CHECK(vMatched.size() == merkleBlock.vMatchedTxn.size()); | ||||
for (unsigned int i = 0; i < vMatched.size(); i++) | for (unsigned int i = 0; i < vMatched.size(); i++) | ||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second); | ||||
// Also match the 4th transaction | // Also match the 4th transaction | ||||
▲ Show 20 Lines • Show All 320 Lines • Show Last 20 Lines |