Skip to content

Commit 5fb70b5

Browse files
committed
feefrac: add some more unit tests
1 parent 119f0a5 commit 5fb70b5

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

src/test/feefrac_tests.cpp

+66
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,72 @@ BOOST_AUTO_TEST_CASE(feefrac_operators)
8080
FeeFrac max_fee2{1, 1};
8181
BOOST_CHECK(max_fee >= max_fee2);
8282

83+
// Examples where the cross-product only differs in the bottom 15 bits.
84+
BOOST_CHECK(FeeFrac(-354472897251355648, 296578183) >> FeeFrac(-499408498440516581, 417842002));
85+
BOOST_CHECK(FeeFrac(-370259345901664256, 575268238) >> FeeFrac(-403083894849742659, 626267411));
86+
BOOST_CHECK(FeeFrac(-4790828124043530874, 260938616) >> FeeFrac(-6785608372001660928, 369586888));
87+
BOOST_CHECK(FeeFrac(2052931238304952064, 1470459185) >> FeeFrac(1216033443768841520, 871011904));
88+
BOOST_CHECK(FeeFrac(3328196932075804, 13968015) >> FeeFrac(26663087684063549, 111901554));
89+
BOOST_CHECK(FeeFrac(649845842452623488, 705513551) >> FeeFrac(12357483567011782, 13416062));
90+
BOOST_CHECK(FeeFrac(-33570210247385060, 1158347843) << FeeFrac(-29357491397710948, 1012987008));
91+
BOOST_CHECK(FeeFrac(13516860620760744, 75363309) << FeeFrac(65117457547567521, 363062638));
92+
BOOST_CHECK(FeeFrac(127024547014822368, 10966520) >> FeeFrac(4591008642845568660, 396359517));
93+
BOOST_CHECK(FeeFrac(641206262541017349, 1601111971) >> FeeFrac(857646369645534208, 2141569647));
94+
BOOST_CHECK(FeeFrac(319248918395533404, 890947597) << FeeFrac(24513477590719404, 68411270));
95+
BOOST_CHECK(FeeFrac(-416336398673581514, 645275698) << FeeFrac(-19608809251366772, 30391501));
96+
BOOST_CHECK(FeeFrac(24877589752415396, 31056925) >> FeeFrac(1545275773492956040, 1929106247));
97+
BOOST_CHECK(FeeFrac(5450186678047674969, 799212602) >> FeeFrac(3144100200355222528, 461049254));
98+
BOOST_CHECK(FeeFrac(-6016636089170922, 70085349) << FeeFrac(-67775518923202977, 789489480));
99+
BOOST_CHECK(FeeFrac(1195652256495478170, 1894547911) << FeeFrac(115565133119112560, 183116521));
100+
BOOST_CHECK(FeeFrac(538333091032708, 4942329) << FeeFrac(226341450249867987, 2077995821));
101+
BOOST_CHECK(FeeFrac(2605011908834424255, 185052093) >> FeeFrac(175076062790674176, 12436869));
102+
BOOST_CHECK(FeeFrac(-4243705771917119569, 1848575776) >> FeeFrac(-447774047484587648, 195052226));
103+
BOOST_CHECK(FeeFrac(35701633923808156, 6812845) << FeeFrac(5427797217432359344, 1035771674));
104+
BOOST_CHECK(FeeFrac(-140501801028154240, 53635742) >> FeeFrac(-335303893132483452, 128000303));
105+
BOOST_CHECK(FeeFrac(131884519785687286, 34291038) << FeeFrac(1925475179304749056, 500639064));
106+
BOOST_CHECK(FeeFrac(-4295973306120651264, 344500120) << FeeFrac(-6678848995410997318, 535586261));
107+
BOOST_CHECK(FeeFrac(-200335923062347948, 79853205) >> FeeFrac(-52131062654134512, 20779261));
108+
BOOST_CHECK(FeeFrac(4359277869142369574, 1564739848) << FeeFrac(94311916336558496, 33852766));
109+
BOOST_CHECK(FeeFrac(6494990158669444, 143815522) << FeeFrac(10296636879881354, 227993603));
110+
BOOST_CHECK(FeeFrac(-290844406386311935, 337077230) >> FeeFrac(-272464809536509, 315776));
111+
BOOST_CHECK(FeeFrac(-376120311989284236, 1237996701) >> FeeFrac(-252395657734714400, 830758089));
112+
BOOST_CHECK(FeeFrac(7087461507220493307, 121324193) >> FeeFrac(511024007272958400, 8747783));
113+
BOOST_CHECK(FeeFrac(793359042451610, 320303) << FeeFrac(36760933975599752, 14841499));
114+
BOOST_CHECK(FeeFrac(79385399933498354, 817170152) << FeeFrac(100449099836562208, 1033993735));
115+
BOOST_CHECK(FeeFrac(-807972341776901574, 107767562) >> FeeFrac(-5590827257436576, 745706));
116+
// Examples where the feerates are equal but the size differs.
117+
BOOST_CHECK(FeeFrac(-1584810348896560566, 327515242) > FeeFrac(-8716456918931083113, 1801333831));
118+
BOOST_CHECK(FeeFrac(-4887684800117705998, 1882150502) < FeeFrac(-4858816310340140431, 1871033819));
119+
BOOST_CHECK(FeeFrac(-7881443858457881763, 1642889298) < FeeFrac(-5254295905638587842, 1095259532));
120+
BOOST_CHECK(FeeFrac(2685340232023340429, 1119727033) < FeeFrac(2646982757659219673, 1103732821));
121+
BOOST_CHECK(FeeFrac(-1711385124585470896, 581257708) > FeeFrac(-4084120055206214252, 1387137371));
122+
BOOST_CHECK(FeeFrac(-5684714567314500286, 1708665910) < FeeFrac(-653908575815481287, 196546595));
123+
BOOST_CHECK(FeeFrac(8772383570586284440, 983729280) < FeeFrac(5472170594784396107, 613645584));
124+
BOOST_CHECK(FeeFrac(3081167191432569610, 1801541287) < FeeFrac(2200833708166121150, 1286815205));
125+
BOOST_CHECK(FeeFrac(6921098537792531201, 1041310938) > FeeFrac(8160293199607343738, 1227753444));
126+
BOOST_CHECK(FeeFrac(5289492385476996884, 2097887228) < FeeFrac(2644746192738498442, 1048943614));
127+
BOOST_CHECK(FeeFrac(5273655003530997398, 1507023568) < FeeFrac(2636827501765498699, 753511784));
128+
BOOST_CHECK(FeeFrac(3279241279119664898, 752916749) > FeeFrac(6023058206677580170, 1382899585));
129+
BOOST_CHECK(FeeFrac(8505386724409749466, 300586338) > FeeFrac(8529269611595717832, 301430376));
130+
BOOST_CHECK(FeeFrac(-9104719062419362730, 1968521528) < FeeFrac(-8731540278474574540, 1887836944));
131+
BOOST_CHECK(FeeFrac(-2827100374609359868, 1702089358) < FeeFrac(-789159920519790638, 475123103));
132+
BOOST_CHECK(FeeFrac(6291411259389436093, 2095567569) < FeeFrac(5533671495699431157, 1843176681));
133+
BOOST_CHECK(FeeFrac(3440530559122240728, 1715443266) < FeeFrac(1146843519707413576, 571814422));
134+
BOOST_CHECK(FeeFrac(-743009339440859554, 134535002) > FeeFrac(-2507199002546742830, 453972790));
135+
BOOST_CHECK(FeeFrac(-3309056397562279573, 1060138915) < FeeFrac(-1504116544346490715, 481881325));
136+
BOOST_CHECK(FeeFrac(479769836453885692, 1799173233) < FeeFrac(388661360234135580, 1457509545));
137+
BOOST_CHECK(FeeFrac(-1801588419648891016, 1151633041) < FeeFrac(-692918622941881160, 442935785));
138+
BOOST_CHECK(FeeFrac(6052955139372998913, 1369555336) > FeeFrac(9120891305904518910, 2063713520));
139+
BOOST_CHECK(FeeFrac(3653799071540648982, 766820217) > FeeFrac(8525531166928180958, 1789247173));
140+
BOOST_CHECK(FeeFrac(649279493057845653, 105395619) > FeeFrac(8512599188933629193, 1381825039));
141+
BOOST_CHECK(FeeFrac(-4490487179793516989, 705546057) < FeeFrac(-3326286571430217221, 522626673));
142+
BOOST_CHECK(FeeFrac(-846521385430655591, 41957026) > FeeFrac(-2539564156291966773, 125871078));
143+
BOOST_CHECK(FeeFrac(842297095754801472, 120147376) > FeeFrac(6527802492099711408, 931142164));
144+
BOOST_CHECK(FeeFrac(8611112100042123243, 979835103) < FeeFrac(6235299266619945181, 709497801));
145+
BOOST_CHECK(FeeFrac(-1933385488281868769, 1061490841) > FeeFrac(-3866770976563737538, 2122981682));
146+
BOOST_CHECK(FeeFrac(4186674688315078310, 1085875405) > FeeFrac(4550357009271024484, 1180201742));
147+
BOOST_CHECK(FeeFrac(-2377945591359133241, 17911555) > FeeFrac(-4755891182718266482, 35823110));
148+
BOOST_CHECK(FeeFrac(1957443247528472573, 1188784417) < FeeFrac(931087540842550549, 565463321));
83149
}
84150

85151
BOOST_AUTO_TEST_CASE(build_diagram_test)

0 commit comments

Comments
 (0)