Skip to content

Commit c0c37f0

Browse files
committed
unit test: have CompareFeerateDiagram tested with diagrams both ways
1 parent b62e2c0 commit c0c37f0

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/test/rbf_tests.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,52 +503,57 @@ BOOST_AUTO_TEST_CASE(feerate_diagram_utilities)
503503
std::vector<FeeFrac> new_diagram{{FeeFrac{0, 0}, FeeFrac{1000, 300}, FeeFrac{1050, 400}}};
504504

505505
BOOST_CHECK(std::is_lt(CompareFeerateDiagram(old_diagram, new_diagram)));
506+
BOOST_CHECK(std::is_gt(CompareFeerateDiagram(new_diagram, old_diagram)));
506507

507508
// Incomparable diagrams
508509
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
509510
new_diagram = {FeeFrac{0, 0}, FeeFrac{1000, 300}, FeeFrac{1000, 400}};
510511

511512
BOOST_CHECK(CompareFeerateDiagram(old_diagram, new_diagram) == std::partial_ordering::unordered);
513+
BOOST_CHECK(CompareFeerateDiagram(new_diagram, old_diagram) == std::partial_ordering::unordered);
512514

513515
// Strictly better but smaller size.
514516
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
515517
new_diagram = {FeeFrac{0, 0}, FeeFrac{1100, 300}};
516518

517519
BOOST_CHECK(std::is_lt(CompareFeerateDiagram(old_diagram, new_diagram)));
520+
BOOST_CHECK(std::is_gt(CompareFeerateDiagram(new_diagram, old_diagram)));
518521

519522
// New diagram is strictly better due to the first chunk, even though
520523
// second chunk contributes no fees
521524
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
522525
new_diagram = {FeeFrac{0, 0}, FeeFrac{1100, 100}, FeeFrac{1100, 200}};
523526

524527
BOOST_CHECK(std::is_lt(CompareFeerateDiagram(old_diagram, new_diagram)));
528+
BOOST_CHECK(std::is_gt(CompareFeerateDiagram(new_diagram, old_diagram)));
525529

526530
// Feerate of first new chunk is better with, but second chunk is worse
527531
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
528532
new_diagram = {FeeFrac{0, 0}, FeeFrac{750, 100}, FeeFrac{999, 350}, FeeFrac{1150, 1000}};
529533

530534
BOOST_CHECK(CompareFeerateDiagram(old_diagram, new_diagram) == std::partial_ordering::unordered);
535+
BOOST_CHECK(CompareFeerateDiagram(new_diagram, old_diagram) == std::partial_ordering::unordered);
531536

532537
// If we make the second chunk slightly better, the new diagram now wins.
533538
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
534539
new_diagram = {FeeFrac{0, 0}, FeeFrac{750, 100}, FeeFrac{1000, 350}, FeeFrac{1150, 500}};
535540

536541
BOOST_CHECK(std::is_lt(CompareFeerateDiagram(old_diagram, new_diagram)));
542+
BOOST_CHECK(std::is_gt(CompareFeerateDiagram(new_diagram, old_diagram)));
537543

538544
// Identical diagrams, cannot be strictly better
539545
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
540546
new_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
541547

542548
BOOST_CHECK(std::is_eq(CompareFeerateDiagram(old_diagram, new_diagram)));
549+
BOOST_CHECK(std::is_eq(CompareFeerateDiagram(new_diagram, old_diagram)));
543550

544551
// Same aggregate fee, but different total size (trigger single tail fee check step)
545552
old_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 399}};
546553
new_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}};
547554

548555
// No change in evaluation when tail check needed.
549556
BOOST_CHECK(std::is_gt(CompareFeerateDiagram(old_diagram, new_diagram)));
550-
551-
// Padding works on either argument
552557
BOOST_CHECK(std::is_lt(CompareFeerateDiagram(new_diagram, old_diagram)));
553558

554559
// Trigger multiple tail fee check steps
@@ -561,6 +566,7 @@ BOOST_AUTO_TEST_CASE(feerate_diagram_utilities)
561566
// Multiple tail fee check steps, unordered result
562567
new_diagram = {FeeFrac{0, 0}, FeeFrac{950, 300}, FeeFrac{1050, 400}, FeeFrac{1050, 401}, FeeFrac{1050, 402}, FeeFrac{1051, 403}};
563568
BOOST_CHECK(CompareFeerateDiagram(old_diagram, new_diagram) == std::partial_ordering::unordered);
569+
BOOST_CHECK(CompareFeerateDiagram(new_diagram, old_diagram) == std::partial_ordering::unordered);
564570
}
565571

566572
BOOST_AUTO_TEST_SUITE_END()

0 commit comments

Comments
 (0)