Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/test/proofcomparator_tests.cpp
Show All 16 Lines | |||||
using namespace avalanche; | using namespace avalanche; | ||||
BOOST_FIXTURE_TEST_SUITE(proofcomparator_tests, TestingSetup) | BOOST_FIXTURE_TEST_SUITE(proofcomparator_tests, TestingSetup) | ||||
BOOST_AUTO_TEST_CASE(proof_shared_pointer_comparator) { | BOOST_AUTO_TEST_CASE(proof_shared_pointer_comparator) { | ||||
uint32_t score = MIN_VALID_PROOF_SCORE; | uint32_t score = MIN_VALID_PROOF_SCORE; | ||||
auto proofMinScore = | auto proofMinScore = buildRandomProof(MIN_VALID_PROOF_SCORE); | ||||
std::make_shared<Proof>(buildRandomProof(MIN_VALID_PROOF_SCORE)); | auto proofMaxScore = buildRandomProof(std::numeric_limits<uint32_t>::max()); | ||||
auto proofMaxScore = std::make_shared<Proof>( | |||||
buildRandomProof(std::numeric_limits<uint32_t>::max())); | |||||
const ProofSharedPointerComparator comparator; | const ProofSharedPointerComparator comparator; | ||||
auto prevProof = proofMinScore; | auto prevProof = proofMinScore; | ||||
for (size_t i = 0; i < 100; i++) { | for (size_t i = 0; i < 100; i++) { | ||||
score += 1000 + GetRandInt(10000); | score += 1000 + GetRandInt(10000); | ||||
auto higherScoreProof = | auto higherScoreProof = buildRandomProof(score); | ||||
std::make_shared<Proof>(buildRandomProof(score)); | |||||
BOOST_CHECK(comparator(higherScoreProof, proofMinScore)); | BOOST_CHECK(comparator(higherScoreProof, proofMinScore)); | ||||
BOOST_CHECK(comparator(higherScoreProof, prevProof)); | BOOST_CHECK(comparator(higherScoreProof, prevProof)); | ||||
BOOST_CHECK(!comparator(higherScoreProof, proofMaxScore)); | BOOST_CHECK(!comparator(higherScoreProof, proofMaxScore)); | ||||
prevProof = higherScoreProof; | prevProof = higherScoreProof; | ||||
} | } | ||||
// Decrement slower than we incremented, so we don't have to check whether | // Decrement slower than we incremented, so we don't have to check whether | ||||
// the score reached the minimal value. | // the score reached the minimal value. | ||||
for (size_t i = 0; i < 100; i++) { | for (size_t i = 0; i < 100; i++) { | ||||
score -= 1 + GetRandInt(100); | score -= 1 + GetRandInt(100); | ||||
auto lowerScoreProof = std::make_shared<Proof>(buildRandomProof(score)); | auto lowerScoreProof = buildRandomProof(score); | ||||
BOOST_CHECK(comparator(lowerScoreProof, proofMinScore)); | BOOST_CHECK(comparator(lowerScoreProof, proofMinScore)); | ||||
BOOST_CHECK(!comparator(lowerScoreProof, prevProof)); | BOOST_CHECK(!comparator(lowerScoreProof, prevProof)); | ||||
BOOST_CHECK(!comparator(lowerScoreProof, proofMaxScore)); | BOOST_CHECK(!comparator(lowerScoreProof, proofMaxScore)); | ||||
prevProof = lowerScoreProof; | prevProof = lowerScoreProof; | ||||
} | } | ||||
for (size_t i = 0; i < 100; i++) { | for (size_t i = 0; i < 100; i++) { | ||||
auto anotherProofMinScore = | auto anotherProofMinScore = buildRandomProof(MIN_VALID_PROOF_SCORE); | ||||
std::make_shared<Proof>(buildRandomProof(MIN_VALID_PROOF_SCORE)); | |||||
BOOST_CHECK_EQUAL(comparator(anotherProofMinScore, proofMinScore), | BOOST_CHECK_EQUAL(comparator(anotherProofMinScore, proofMinScore), | ||||
anotherProofMinScore->getId() < | anotherProofMinScore->getId() < | ||||
proofMinScore->getId()); | proofMinScore->getId()); | ||||
} | } | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |