From 820d5a88ac30962a29b891e408595e18644aa404 Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Thu, 8 Aug 2024 21:04:52 +0400 Subject: [PATCH] test data for new forkchoice rule generated(fork_choice_rule_test.fork_choice_rule_test_hf4) --- tests/unit_tests/fork_choice_rule.cpp | 1807 ++++++++++++++++++++++++- 1 file changed, 1782 insertions(+), 25 deletions(-) diff --git a/tests/unit_tests/fork_choice_rule.cpp b/tests/unit_tests/fork_choice_rule.cpp index 33014781..1f15eced 100644 --- a/tests/unit_tests/fork_choice_rule.cpp +++ b/tests/unit_tests/fork_choice_rule.cpp @@ -88,62 +88,1819 @@ bool if_alt_chain_stronger_hf4(const currency::wide_difficulty_type& pos, const return true; return false; } + + +bool less_or_equal(const currency::wide_difficulty_type& pos, const currency::wide_difficulty_type& pow) { + // Example predicate: less or equal to a certain target + return !if_alt_chain_stronger_hf4(pos, pow);//mid <= target; +} + +currency::wide_difficulty_type binary_search_custom(currency::wide_difficulty_type low, currency::wide_difficulty_type high, std::function less_or_equal) { + while (low < high) + { + currency::wide_difficulty_type mid = low + (high - low) / 2; + + if (less_or_equal(mid)) { + low = mid + 1; + LOG_PRINT_L0("mid: less_or_eq_true: " << mid); + } + else { + high = mid; + LOG_PRINT_L0("mid: less_or_eq_false: " << mid); + } + } + LOG_PRINT_L0("ret_low: " << low); + return low; +} + +currency::wide_difficulty_type find_break_point(const currency::wide_difficulty_type& pos, const currency::wide_difficulty_type& pow) +{ + currency::wide_difficulty_type last_takeover_pow = binary_search_custom(0, pow, [&](const currency::wide_difficulty_type& pow_mid) { + return less_or_equal(pos, pow_mid); + }); + + return last_takeover_pow; + /*for (currency::wide_difficulty_type pow_now = pow; pow_now != 0; pow_now--) + { + if(!if_alt_chain_stronger_hf4(pos, pow)) + { + if (pow == pow_now) + return 0; + return last_takeover_pow; + } + }*/ +} + TEST(fork_choice_rule_test, fork_choice_rule_test_hf4) { std::stringstream ss; currency::wide_difficulty_type pos_start, pos_end, pos_step, pos_diveder; - pos_start.assign("16059734679876525341203446"); - pos_end.assign ("16059734679876525341203446400"); - pos_step.assign ("50000000000000000000000000"); + pos_start.assign ("500000000000000000000000000");//pos_start.assign("16059734679876525341203446"); + // 1605973467987652534120344647 <- split point + pos_end.assign ("2500000000000000000000000000");//pos_end.assign ("16059734679876525341203446400"); + pos_step.assign ("5000000000000000000000000"); pos_diveder.assign("100000000000000000000000"); currency::wide_difficulty_type pow_start, pow_end, pow_step, pow_diveder; - pow_start.assign("301126455400284498"); - pow_end.assign ("30112645540028449810"); - pow_step.assign ("500000000000000000"); + pow_start.assign("30112645540028449"); //pow_start.assign("301126455400284498"); + // 3011264554002844981 <- split point + pow_end.assign ("301126455400284498100");// pow_end.assign ("30112645540028449810"); + pow_step.assign ("5000000000000000"); pow_diveder.assign("1000000000000000"); + /************************************************************************ for (currency::wide_difficulty_type pos = pos_start; pos < pos_end; pos += pos_step) { for (currency::wide_difficulty_type pow = pow_start; pow < pow_end; pow += pow_step) { bool r = if_alt_chain_stronger_hf4(pos, pow); - if(r) - ss << pos/ pos_diveder << "\t" << pow / pow_diveder << std::endl; - //ss << pos << "\t" << pow << "\t" << (r ? "1" : "0") << std::endl; + if (r) + { + ss << pos / pos_diveder << "\t" << pow / pow_diveder << std::endl; + break; + } + //ss << pos << "\t" << pow << "\t" << (r ? "1" : "0") << std::endl; } } bool r = epee::file_io_utils::save_string_to_file("stat_hf4.txt", ss.str()); + + latest results: + https://docs.google.com/spreadsheets/d/e/2PACX-1vSan0_LNlMTzFXTUPc1CxAqeV4RPh-19YLicpNIjPxBcW2BLMjQK06A_tL4GdckXrYotRDD-FlCONvr/pubhtml + + + ************************************************************************/ + + /* + std::vector> break_points_init = { + {8100, 173895}, + {8150, 102145}, +{8200, 72570}, +{8250, 56430}, +{8300, 46265}, +{8350, 39275}, +{8400, 34170}, +{8450, 30285}, +{8500, 27225}, +{8550, 24750}, +{8600, 22715}, +{8650, 21005}, +{8700, 19550}, +{8750, 18295}, +{8800, 17205}, +{8850, 16250}, +{8900, 15400}, +{8950, 14645}, +{9000, 13970}, +{9050, 13360}, +{9100, 12805}, +{9150, 12300}, +{9200, 11840}, +{9250, 11415}, +{9300, 11025}, +{9350, 10665}, +{9400, 10330}, +{9450, 10020}, +{9500, 9730}, +{9550, 9460}, +{9600, 9210}, +{9650, 8970}, +{9700, 8745}, +{9750, 8535}, +{9800, 8340}, +{9850, 8150}, +{9900, 7975}, +{9950, 7805}, +{10000, 7645}, +{10050, 7495}, +{10100, 7350}, +{10150, 7210}, +{10200, 7080}, +{10250, 6955}, +{10300, 6835}, +{10350, 6720}, +{10400, 6610}, +{10450, 6505}, +{10500, 6405}, +{10550, 6305}, +{10600, 6210}, +{10650, 6120}, +{10700, 6035}, +{10750, 5955}, +{10800, 5870}, +{10850, 5795}, +{10900, 5720}, +{10950, 5650}, +{11000, 5580}, +{11050, 5510}, +{11100, 5445}, +{11150, 5385}, +{11200, 5320}, +{11250, 5265}, +{11300, 5205}, +{11350, 5150}, +{11400, 5095}, +{11450, 5045}, +{11500, 4990}, +{11550, 4945}, +{11600, 4895}, +{11650, 4850}, +{11700, 4800}, +{11750, 4760}, +{11800, 4715}, +{11850, 4675}, +{11900, 4630}, +{11950, 4590}, +{12000, 4555}, +{12050, 4515}, +{12100, 4480}, +{12150, 4440}, +{12200, 4405}, +{12250, 4375}, +{12300, 4340}, +{12350, 4305}, +{12400, 4275}, +{12450, 4245}, +{12500, 4215}, +{12550, 4185}, +{12600, 4155}, +{12650, 4125}, +{12700, 4095}, +{12750, 4070}, +{12800, 4045}, +{12850, 4015}, +{12900, 3990}, +{12950, 3965}, +{13000, 3940}, +{13050, 3915}, +{13100, 3895}, +{13150, 3870}, +{13200, 3845}, +{13250, 3825}, +{13300, 3800}, +{13350, 3780}, +{13400, 3760}, +{13450, 3740}, +{13500, 3720}, +{13550, 3700}, +{13600, 3680}, +{13650, 3660}, +{13700, 3640}, +{13750, 3620}, +{13800, 3605}, +{13850, 3585}, +{13900, 3570}, +{13950, 3550}, +{14000, 3535}, +{14050, 3515}, +{14100, 3500}, +{14150, 3485}, +{14200, 3465}, +{14250, 3450}, +{14300, 3435}, +{14350, 3420}, +{14400, 3405}, +{14450, 3390}, +{14500, 3375}, +{14550, 3360}, +{14600, 3350}, +{14650, 3335}, +{14700, 3320}, +{14750, 3305}, +{14800, 3295}, +{14850, 3280}, +{14900, 3270}, +{14950, 3255}, +{15000, 3245}, +{15050, 3230}, +{15100, 3220}, +{15150, 3205}, +{15200, 3195}, +{15250, 3185}, +{15300, 3170}, +{15350, 3160}, +{15400, 3150}, +{15450, 3135}, +{15500, 3125}, +{15550, 3115}, +{15600, 3105}, +{15650, 3095}, +{15700, 3085}, +{15750, 3075}, +{15800, 3065}, +{15850, 3055}, +{15900, 3045}, +{15950, 3035}, +{16000, 3025}, +{16050, 3015}, +{16100, 3005}, +{16150, 2995}, +{16200, 2990}, +{16250, 2980}, +{16300, 2970}, +{16350, 2960}, +{16400, 2950}, +{16450, 2945}, +{16500, 2935}, +{16550, 2925}, +{16600, 2920}, +{16650, 2910}, +{16700, 2900}, +{16750, 2895}, +{16800, 2885}, +{16850, 2880}, +{16900, 2870}, +{16950, 2865}, +{17000, 2855}, +{17050, 2850}, +{17100, 2840}, +{17150, 2835}, +{17200, 2825}, +{17250, 2820}, +{17300, 2810}, +{17350, 2805}, +{17400, 2800}, +{17450, 2790}, +{17500, 2785}, +{17550, 2780}, +{17600, 2770}, +{17650, 2765}, +{17700, 2760}, +{17750, 2750}, +{17800, 2745}, +{17850, 2740}, +{17900, 2735}, +{17950, 2725}, +{18000, 2720}, +{18050, 2715}, +{18100, 2710}, +{18150, 2705}, +{18200, 2695}, +{18250, 2690}, +{18300, 2685}, +{18350, 2680}, +{18400, 2675}, +{18450, 2670}, +{18500, 2665}, +{18550, 2655}, +{18600, 2650}, +{18650, 2645}, +{18700, 2640}, +{18750, 2635}, +{18800, 2630}, +{18850, 2625}, +{18900, 2620}, +{18950, 2615}, +{19000, 2610}, +{19050, 2605}, +{19100, 2600}, +{19150, 2595}, +{19200, 2590}, +{19250, 2585}, +{19300, 2580}, +{19350, 2575}, +{19400, 2570}, +{19450, 2565}, +{19500, 2560}, +{19550, 2555}, +{19600, 2555}, +{19650, 2550}, +{19700, 2545}, +{19750, 2540}, +{19800, 2535}, +{19850, 2530}, +{19900, 2525}, +{19950, 2520}, +{20000, 2520}, +{20050, 2515}, +{20100, 2510}, +{20150, 2505}, +{20200, 2500}, +{20250, 2495}, +{20300, 2495}, +{20350, 2490}, +{20400, 2485}, +{20450, 2480}, +{20500, 2480}, +{20550, 2475}, +{20600, 2470}, +{20650, 2465}, +{20700, 2460}, +{20750, 2460}, +{20800, 2455}, +{20850, 2450}, +{20900, 2445}, +{20950, 2445}, +{21000, 2440}, +{21050, 2435}, +{21100, 2435}, +{21150, 2430}, +{21200, 2425}, +{21250, 2425}, +{21300, 2420}, +{21350, 2415}, +{21400, 2410}, +{21450, 2410}, +{21500, 2405}, +{21550, 2400}, +{21600, 2400}, +{21650, 2395}, +{21700, 2390}, +{21750, 2390}, +{21800, 2385}, +{21850, 2385}, +{21900, 2380}, +{21950, 2375}, +{22000, 2375}, +{22050, 2370}, +{22100, 2365}, +{22150, 2365}, +{22200, 2360}, +{22250, 2360}, +{22300, 2355}, +{22350, 2350}, +{22400, 2350}, +{22450, 2345}, +{22500, 2345}, +{22550, 2340}, +{22600, 2340}, +{22650, 2335}, +{22700, 2330}, +{22750, 2330}, +{22800, 2325}, +{22850, 2325}, +{22900, 2320}, +{22950, 2320}, +{23000, 2315}, +{23050, 2315}, +{23100, 2310}, +{23150, 2310}, +{23200, 2305}, +{23250, 2300}, +{23300, 2300}, +{23350, 2295}, +{23400, 2295}, +{23450, 2290}, +{23500, 2290}, +{23550, 2285}, +{23600, 2285}, +{23650, 2280}, +{23700, 2280}, +{23750, 2275}, +{23800, 2275}, +{23850, 2270}, +{23900, 2270}, +{23950, 2265}, +{24000, 2265}, +{24050, 2265}, +{24100, 2260}, +{24150, 2260}, +{24200, 2255}, +{24250, 2255}, +{24300, 2250}, +{24350, 2250}, +{24400, 2245}, +{24450, 2245}, +{24500, 2240}, +{24550, 2240}, +{24600, 2240}, +{24650, 2235}, +{24700, 2235}, +{24750, 2230}, +{24800, 2230}, +{24850, 2225}, +{24900, 2225}, +{24950, 2225} + };*/ + /* + //std::stringstream ss; + for (auto bp : break_points_init) + { + currency::wide_difficulty_type pow_takeover_point = find_break_point(pos_diveder * bp.first, (pow_diveder * bp.second) + pow_step); + + if (pow_takeover_point == 0) + { + LOG_ERROR("Failed"); + } + else + { + //self check + if (if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point - 1) == if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point)) + { + bool rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point); + rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point+1); + rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point+2); + rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point+3); + rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point-1); + rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point-2); + rfrf = if_alt_chain_stronger_hf4(pos_diveder * bp.first, pow_takeover_point - 3); + + LOG_ERROR("ERROR"); + return; + } + ss << + "res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type(\"" << pos_diveder * bp.first << "\"), currency::wide_difficulty_type(\"" << pow_takeover_point << "\"));" << ENDL << + "ASSERT_TRUE(res);" << ENDL << + "res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type(\"" << pos_diveder * bp.first << "\"), currency::wide_difficulty_type(\"" << pow_takeover_point - 1 << "\"));" << ENDL << + "ASSERT_FALSE(res);" << ENDL; + } + } + bool r = epee::file_io_utils::save_string_to_file("script.txt", ss.str()); + */ bool res = false; - res = if_alt_chain_stronger_hf4(1000000, 1000); - ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(1000000, 1500); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("810000000000000000000000000"), currency::wide_difficulty_type("173893610095151033482")); ASSERT_TRUE(res); - res = if_alt_chain_stronger_hf4(800000, 1700); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("810000000000000000000000000"), currency::wide_difficulty_type("173893610095151033481")); ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(800000, 2000); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("815000000000000000000000000"), currency::wide_difficulty_type("102144604566780242768")); ASSERT_TRUE(res); - res = if_alt_chain_stronger_hf4(600000, 2200); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("815000000000000000000000000"), currency::wide_difficulty_type("102144604566780242767")); ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(600000, 2800); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("820000000000000000000000000"), currency::wide_difficulty_type("72567987045706043158")); ASSERT_TRUE(res); - res = if_alt_chain_stronger_hf4(400000, 3999); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("820000000000000000000000000"), currency::wide_difficulty_type("72567987045706043157")); ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(400000, 4001); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("825000000000000000000000000"), currency::wide_difficulty_type("56427184779296592563")); ASSERT_TRUE(res); - res = if_alt_chain_stronger_hf4(200000, 7000); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("825000000000000000000000000"), currency::wide_difficulty_type("56427184779296592562")); ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(200000, 7700); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("830000000000000000000000000"), currency::wide_difficulty_type("46261521639981421968")); ASSERT_TRUE(res); - res = if_alt_chain_stronger_hf4(200000, 7000); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("830000000000000000000000000"), currency::wide_difficulty_type("46261521639981421967")); ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(200000, 7700); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("835000000000000000000000000"), currency::wide_difficulty_type("39271311807228203073")); ASSERT_TRUE(res); - res = if_alt_chain_stronger_hf4(100000, 10000); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("835000000000000000000000000"), currency::wide_difficulty_type("39271311807228203072")); ASSERT_FALSE(res); - res = if_alt_chain_stronger_hf4(200000, 14000); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("840000000000000000000000000"), currency::wide_difficulty_type("34169670746435628497")); ASSERT_TRUE(res); -} + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("840000000000000000000000000"), currency::wide_difficulty_type("34169670746435628496")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("845000000000000000000000000"), currency::wide_difficulty_type("30282322585424495014")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("845000000000000000000000000"), currency::wide_difficulty_type("30282322585424495013")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("850000000000000000000000000"), currency::wide_difficulty_type("27221836391522953727")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("850000000000000000000000000"), currency::wide_difficulty_type("27221836391522953726")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("855000000000000000000000000"), currency::wide_difficulty_type("24749755123691287729")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("855000000000000000000000000"), currency::wide_difficulty_type("24749755123691287728")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("860000000000000000000000000"), currency::wide_difficulty_type("22711271409727869596")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("860000000000000000000000000"), currency::wide_difficulty_type("22711271409727869595")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("865000000000000000000000000"), currency::wide_difficulty_type("21001505056620832872")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("865000000000000000000000000"), currency::wide_difficulty_type("21001505056620832871")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("870000000000000000000000000"), currency::wide_difficulty_type("19546877193995594351")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("870000000000000000000000000"), currency::wide_difficulty_type("19546877193995594350")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("875000000000000000000000000"), currency::wide_difficulty_type("18294243761466129083")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("875000000000000000000000000"), currency::wide_difficulty_type("18294243761466129082")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("880000000000000000000000000"), currency::wide_difficulty_type("17204261972931225543")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("880000000000000000000000000"), currency::wide_difficulty_type("17204261972931225542")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("885000000000000000000000000"), currency::wide_difficulty_type("16247183291614714294")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("885000000000000000000000000"), currency::wide_difficulty_type("16247183291614714293")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("890000000000000000000000000"), currency::wide_difficulty_type("15400096882194836021")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("890000000000000000000000000"), currency::wide_difficulty_type("15400096882194836020")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("895000000000000000000000000"), currency::wide_difficulty_type("14645071807644110435")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("895000000000000000000000000"), currency::wide_difficulty_type("14645071807644110434")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("900000000000000000000000000"), currency::wide_difficulty_type("13967873725795875372")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("900000000000000000000000000"), currency::wide_difficulty_type("13967873725795875371")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("905000000000000000000000000"), currency::wide_difficulty_type("13357058979013812170")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("905000000000000000000000000"), currency::wide_difficulty_type("13357058979013812169")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("910000000000000000000000000"), currency::wide_difficulty_type("12803322645925507695")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("910000000000000000000000000"), currency::wide_difficulty_type("12803322645925507694")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("915000000000000000000000000"), currency::wide_difficulty_type("12299021201474213830")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("915000000000000000000000000"), currency::wide_difficulty_type("12299021201474213829")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("920000000000000000000000000"), currency::wide_difficulty_type("11837817557953003092")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("920000000000000000000000000"), currency::wide_difficulty_type("11837817557953003091")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("925000000000000000000000000"), currency::wide_difficulty_type("11414413381540383189")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("925000000000000000000000000"), currency::wide_difficulty_type("11414413381540383188")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("930000000000000000000000000"), currency::wide_difficulty_type("11024344634545981648")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("930000000000000000000000000"), currency::wide_difficulty_type("11024344634545981647")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("935000000000000000000000000"), currency::wide_difficulty_type("10663823580658131959")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("935000000000000000000000000"), currency::wide_difficulty_type("10663823580658131958")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("940000000000000000000000000"), currency::wide_difficulty_type("10329615384232683380")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("940000000000000000000000000"), currency::wide_difficulty_type("10329615384232683379")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("945000000000000000000000000"), currency::wide_difficulty_type("10018940777719244821")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("945000000000000000000000000"), currency::wide_difficulty_type("10018940777719244820")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("950000000000000000000000000"), currency::wide_difficulty_type("9729398591085546371")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("950000000000000000000000000"), currency::wide_difficulty_type("9729398591085546370")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("955000000000000000000000000"), currency::wide_difficulty_type("9458903570152632164")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("955000000000000000000000000"), currency::wide_difficulty_type("9458903570152632163")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("960000000000000000000000000"), currency::wide_difficulty_type("9205636075772937886")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("960000000000000000000000000"), currency::wide_difficulty_type("9205636075772937885")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("965000000000000000000000000"), currency::wide_difficulty_type("8968001097212660715")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("965000000000000000000000000"), currency::wide_difficulty_type("8968001097212660714")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("970000000000000000000000000"), currency::wide_difficulty_type("8744594627814733132")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("970000000000000000000000000"), currency::wide_difficulty_type("8744594627814733131")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("975000000000000000000000000"), currency::wide_difficulty_type("8534175904919445023")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("975000000000000000000000000"), currency::wide_difficulty_type("8534175904919445022")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("980000000000000000000000000"), currency::wide_difficulty_type("8335644354530648558")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("980000000000000000000000000"), currency::wide_difficulty_type("8335644354530648557")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("985000000000000000000000000"), currency::wide_difficulty_type("8148020336034723158")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("985000000000000000000000000"), currency::wide_difficulty_type("8148020336034723157")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("990000000000000000000000000"), currency::wide_difficulty_type("7970428975782931705")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("990000000000000000000000000"), currency::wide_difficulty_type("7970428975782931704")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("995000000000000000000000000"), currency::wide_difficulty_type("7802086526502014600")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("995000000000000000000000000"), currency::wide_difficulty_type("7802086526502014599")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1000000000000000000000000000"), currency::wide_difficulty_type("7642288803812028782")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1000000000000000000000000000"), currency::wide_difficulty_type("7642288803812028781")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1005000000000000000000000000"), currency::wide_difficulty_type("7490401339980245977")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1005000000000000000000000000"), currency::wide_difficulty_type("7490401339980245976")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1010000000000000000000000000"), currency::wide_difficulty_type("7345850964575793868")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1010000000000000000000000000"), currency::wide_difficulty_type("7345850964575793867")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1015000000000000000000000000"), currency::wide_difficulty_type("7208118576466544449")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1015000000000000000000000000"), currency::wide_difficulty_type("7208118576466544448")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1020000000000000000000000000"), currency::wide_difficulty_type("7076732915018020514")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1020000000000000000000000000"), currency::wide_difficulty_type("7076732915018020513")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1025000000000000000000000000"), currency::wide_difficulty_type("6951265172971883569")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1025000000000000000000000000"), currency::wide_difficulty_type("6951265172971883568")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1030000000000000000000000000"), currency::wide_difficulty_type("6831324321237202029")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1030000000000000000000000000"), currency::wide_difficulty_type("6831324321237202028")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1035000000000000000000000000"), currency::wide_difficulty_type("6716553038200005653")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1035000000000000000000000000"), currency::wide_difficulty_type("6716553038200005652")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1040000000000000000000000000"), currency::wide_difficulty_type("6606624154281270723")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1040000000000000000000000000"), currency::wide_difficulty_type("6606624154281270722")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1045000000000000000000000000"), currency::wide_difficulty_type("6501237537228019549")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1045000000000000000000000000"), currency::wide_difficulty_type("6501237537228019548")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1050000000000000000000000000"), currency::wide_difficulty_type("6400117355688827656")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1050000000000000000000000000"), currency::wide_difficulty_type("6400117355688827655")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1055000000000000000000000000"), currency::wide_difficulty_type("6303009668537003243")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1055000000000000000000000000"), currency::wide_difficulty_type("6303009668537003242")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1060000000000000000000000000"), currency::wide_difficulty_type("6209680295581205260")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1060000000000000000000000000"), currency::wide_difficulty_type("6209680295581205259")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1065000000000000000000000000"), currency::wide_difficulty_type("6119912932075478362")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1065000000000000000000000000"), currency::wide_difficulty_type("6119912932075478361")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1070000000000000000000000000"), currency::wide_difficulty_type("6033507475071567420")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1070000000000000000000000000"), currency::wide_difficulty_type("6033507475071567419")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1075000000000000000000000000"), currency::wide_difficulty_type("5950278534355724202")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1075000000000000000000000000"), currency::wide_difficulty_type("5950278534355724201")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1080000000000000000000000000"), currency::wide_difficulty_type("5870054104648172855")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1080000000000000000000000000"), currency::wide_difficulty_type("5870054104648172854")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1085000000000000000000000000"), currency::wide_difficulty_type("5792674379051306677")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1085000000000000000000000000"), currency::wide_difficulty_type("5792674379051306676")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1090000000000000000000000000"), currency::wide_difficulty_type("5717990686521957375")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1090000000000000000000000000"), currency::wide_difficulty_type("5717990686521957374")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1095000000000000000000000000"), currency::wide_difficulty_type("5645864538502512988")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1095000000000000000000000000"), currency::wide_difficulty_type("5645864538502512987")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1100000000000000000000000000"), currency::wide_difficulty_type("5576166771847621697")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1100000000000000000000000000"), currency::wide_difficulty_type("5576166771847621696")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1105000000000000000000000000"), currency::wide_difficulty_type("5508776776886887265")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1105000000000000000000000000"), currency::wide_difficulty_type("5508776776886887264")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1110000000000000000000000000"), currency::wide_difficulty_type("5443581800917917808")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1110000000000000000000000000"), currency::wide_difficulty_type("5443581800917917807")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1115000000000000000000000000"), currency::wide_difficulty_type("5380476318668349354")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1115000000000000000000000000"), currency::wide_difficulty_type("5380476318668349353")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1120000000000000000000000000"), currency::wide_difficulty_type("5319361462333102716")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1120000000000000000000000000"), currency::wide_difficulty_type("5319361462333102715")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1125000000000000000000000000"), currency::wide_difficulty_type("5260144504711571647")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1125000000000000000000000000"), currency::wide_difficulty_type("5260144504711571646")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1130000000000000000000000000"), currency::wide_difficulty_type("5202738389761493946")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1130000000000000000000000000"), currency::wide_difficulty_type("5202738389761493945")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1135000000000000000000000000"), currency::wide_difficulty_type("5147061305570958556")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1135000000000000000000000000"), currency::wide_difficulty_type("5147061305570958555")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1140000000000000000000000000"), currency::wide_difficulty_type("5093036295343277653")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1140000000000000000000000000"), currency::wide_difficulty_type("5093036295343277652")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1145000000000000000000000000"), currency::wide_difficulty_type("5040590902504669188")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1145000000000000000000000000"), currency::wide_difficulty_type("5040590902504669187")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1150000000000000000000000000"), currency::wide_difficulty_type("4989656846493099358")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1150000000000000000000000000"), currency::wide_difficulty_type("4989656846493099357")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1155000000000000000000000000"), currency::wide_difficulty_type("4940169726177716516")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1155000000000000000000000000"), currency::wide_difficulty_type("4940169726177716515")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1160000000000000000000000000"), currency::wide_difficulty_type("4892068748200095632")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1160000000000000000000000000"), currency::wide_difficulty_type("4892068748200095631")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1165000000000000000000000000"), currency::wide_difficulty_type("4845296477827814285")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1165000000000000000000000000"), currency::wide_difficulty_type("4845296477827814284")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1170000000000000000000000000"), currency::wide_difficulty_type("4799798610173485225")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1170000000000000000000000000"), currency::wide_difficulty_type("4799798610173485224")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1175000000000000000000000000"), currency::wide_difficulty_type("4755523759863208997")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1175000000000000000000000000"), currency::wide_difficulty_type("4755523759863208996")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1180000000000000000000000000"), currency::wide_difficulty_type("4712423267441696058")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1180000000000000000000000000"), currency::wide_difficulty_type("4712423267441696057")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1185000000000000000000000000"), currency::wide_difficulty_type("4670451020980647133")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1185000000000000000000000000"), currency::wide_difficulty_type("4670451020980647132")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1190000000000000000000000000"), currency::wide_difficulty_type("4629563291515467266")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1190000000000000000000000000"), currency::wide_difficulty_type("4629563291515467265")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1195000000000000000000000000"), currency::wide_difficulty_type("4589718581075682727")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1195000000000000000000000000"), currency::wide_difficulty_type("4589718581075682726")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1200000000000000000000000000"), currency::wide_difficulty_type("4550877482198821754")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1200000000000000000000000000"), currency::wide_difficulty_type("4550877482198821753")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1205000000000000000000000000"), currency::wide_difficulty_type("4513002547927988098")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1205000000000000000000000000"), currency::wide_difficulty_type("4513002547927988097")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1210000000000000000000000000"), currency::wide_difficulty_type("4476058171391610675")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1210000000000000000000000000"), currency::wide_difficulty_type("4476058171391610674")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1215000000000000000000000000"), currency::wide_difficulty_type("4440010474151375716")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1215000000000000000000000000"), currency::wide_difficulty_type("4440010474151375715")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1220000000000000000000000000"), currency::wide_difficulty_type("4404827202582426266")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1220000000000000000000000000"), currency::wide_difficulty_type("4404827202582426265")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1225000000000000000000000000"), currency::wide_difficulty_type("4370477631619666641")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1225000000000000000000000000"), currency::wide_difficulty_type("4370477631619666640")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1230000000000000000000000000"), currency::wide_difficulty_type("4336932475266411512")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1230000000000000000000000000"), currency::wide_difficulty_type("4336932475266411511")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1235000000000000000000000000"), currency::wide_difficulty_type("4304163803317521313")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1235000000000000000000000000"), currency::wide_difficulty_type("4304163803317521312")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1240000000000000000000000000"), currency::wide_difficulty_type("4272144963799311315")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1240000000000000000000000000"), currency::wide_difficulty_type("4272144963799311314")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1245000000000000000000000000"), currency::wide_difficulty_type("4240850510673562277")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1245000000000000000000000000"), currency::wide_difficulty_type("4240850510673562276")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1250000000000000000000000000"), currency::wide_difficulty_type("4210256136393466936")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1250000000000000000000000000"), currency::wide_difficulty_type("4210256136393466935")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1255000000000000000000000000"), currency::wide_difficulty_type("4180338608935820328")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1255000000000000000000000000"), currency::wide_difficulty_type("4180338608935820327")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1260000000000000000000000000"), currency::wide_difficulty_type("4151075712966644396")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1260000000000000000000000000"), currency::wide_difficulty_type("4151075712966644395")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1265000000000000000000000000"), currency::wide_difficulty_type("4122446194827116866")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1265000000000000000000000000"), currency::wide_difficulty_type("4122446194827116865")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1270000000000000000000000000"), currency::wide_difficulty_type("4094429711053494243")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1270000000000000000000000000"), currency::wide_difficulty_type("4094429711053494242")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1275000000000000000000000000"), currency::wide_difficulty_type("4067006780168981652")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1275000000000000000000000000"), currency::wide_difficulty_type("4067006780168981651")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1280000000000000000000000000"), currency::wide_difficulty_type("4040158737507476210")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1280000000000000000000000000"), currency::wide_difficulty_type("4040158737507476209")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1285000000000000000000000000"), currency::wide_difficulty_type("4013867692849033231")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1285000000000000000000000000"), currency::wide_difficulty_type("4013867692849033230")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1290000000000000000000000000"), currency::wide_difficulty_type("3988116490664986212")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1290000000000000000000000000"), currency::wide_difficulty_type("3988116490664986211")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1295000000000000000000000000"), currency::wide_difficulty_type("3962888672787079503")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1295000000000000000000000000"), currency::wide_difficulty_type("3962888672787079502")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1300000000000000000000000000"), currency::wide_difficulty_type("3938168443329913124")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1300000000000000000000000000"), currency::wide_difficulty_type("3938168443329913123")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1305000000000000000000000000"), currency::wide_difficulty_type("3913940635709600402")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1305000000000000000000000000"), currency::wide_difficulty_type("3913940635709600401")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1310000000000000000000000000"), currency::wide_difficulty_type("3890190681613933281")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1310000000000000000000000000"), currency::wide_difficulty_type("3890190681613933280")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1315000000000000000000000000"), currency::wide_difficulty_type("3866904581790654891")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1315000000000000000000000000"), currency::wide_difficulty_type("3866904581790654890")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1320000000000000000000000000"), currency::wide_difficulty_type("3844068878530759853")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1320000000000000000000000000"), currency::wide_difficulty_type("3844068878530759852")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1325000000000000000000000000"), currency::wide_difficulty_type("3821670629733173919")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1325000000000000000000000000"), currency::wide_difficulty_type("3821670629733173918")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1330000000000000000000000000"), currency::wide_difficulty_type("3799697384445790394")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1330000000000000000000000000"), currency::wide_difficulty_type("3799697384445790393")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1335000000000000000000000000"), currency::wide_difficulty_type("3778137159785737024")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1335000000000000000000000000"), currency::wide_difficulty_type("3778137159785737023")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1340000000000000000000000000"), currency::wide_difficulty_type("3756978419148981611")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1340000000000000000000000000"), currency::wide_difficulty_type("3756978419148981610")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1345000000000000000000000000"), currency::wide_difficulty_type("3736210051626018480")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1345000000000000000000000000"), currency::wide_difficulty_type("3736210051626018479")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1350000000000000000000000000"), currency::wide_difficulty_type("3715821352546466165")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1350000000000000000000000000"), currency::wide_difficulty_type("3715821352546466164")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1355000000000000000000000000"), currency::wide_difficulty_type("3695802005080998506")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1355000000000000000000000000"), currency::wide_difficulty_type("3695802005080998505")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1360000000000000000000000000"), currency::wide_difficulty_type("3676142062834171471")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1360000000000000000000000000"), currency::wide_difficulty_type("3676142062834171470")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1365000000000000000000000000"), currency::wide_difficulty_type("3656831933366436577")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1365000000000000000000000000"), currency::wide_difficulty_type("3656831933366436576")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1370000000000000000000000000"), currency::wide_difficulty_type("3637862362587985060")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1370000000000000000000000000"), currency::wide_difficulty_type("3637862362587985059")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1375000000000000000000000000"), currency::wide_difficulty_type("3619224419971077733")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1375000000000000000000000000"), currency::wide_difficulty_type("3619224419971077732")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1380000000000000000000000000"), currency::wide_difficulty_type("3600909484531213505")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1380000000000000000000000000"), currency::wide_difficulty_type("3600909484531213504")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1385000000000000000000000000"), currency::wide_difficulty_type("3582909231530901607")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1385000000000000000000000000"), currency::wide_difficulty_type("3582909231530901606")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1390000000000000000000000000"), currency::wide_difficulty_type("3565215619862953101")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1390000000000000000000000000"), currency::wide_difficulty_type("3565215619862953100")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1395000000000000000000000000"), currency::wide_difficulty_type("3547820880073118287")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1395000000000000000000000000"), currency::wide_difficulty_type("3547820880073118286")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1400000000000000000000000000"), currency::wide_difficulty_type("3530717502984588252")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1400000000000000000000000000"), currency::wide_difficulty_type("3530717502984588251")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1405000000000000000000000000"), currency::wide_difficulty_type("3513898228889369242")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1405000000000000000000000000"), currency::wide_difficulty_type("3513898228889369241")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1410000000000000000000000000"), currency::wide_difficulty_type("3497356037273844307")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1410000000000000000000000000"), currency::wide_difficulty_type("3497356037273844306")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1415000000000000000000000000"), currency::wide_difficulty_type("3481084137047972976")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1415000000000000000000000000"), currency::wide_difficulty_type("3481084137047972975")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1420000000000000000000000000"), currency::wide_difficulty_type("3465075957249560147")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1420000000000000000000000000"), currency::wide_difficulty_type("3465075957249560146")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1425000000000000000000000000"), currency::wide_difficulty_type("3449325138196862568")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1425000000000000000000000000"), currency::wide_difficulty_type("3449325138196862567")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1430000000000000000000000000"), currency::wide_difficulty_type("3433825523064506644")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1430000000000000000000000000"), currency::wide_difficulty_type("3433825523064506643")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1435000000000000000000000000"), currency::wide_difficulty_type("3418571149859275151")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1435000000000000000000000000"), currency::wide_difficulty_type("3418571149859275150")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1440000000000000000000000000"), currency::wide_difficulty_type("3403556243773792521")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1440000000000000000000000000"), currency::wide_difficulty_type("3403556243773792520")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1445000000000000000000000000"), currency::wide_difficulty_type("3388775209897507173")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1445000000000000000000000000"), currency::wide_difficulty_type("3388775209897507172")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1450000000000000000000000000"), currency::wide_difficulty_type("3374222626265643002")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1450000000000000000000000000"), currency::wide_difficulty_type("3374222626265643001")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1455000000000000000000000000"), currency::wide_difficulty_type("3359893237227977874")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1455000000000000000000000000"), currency::wide_difficulty_type("3359893237227977873")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1460000000000000000000000000"), currency::wide_difficulty_type("3345781947120411526")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1460000000000000000000000000"), currency::wide_difficulty_type("3345781947120411525")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1465000000000000000000000000"), currency::wide_difficulty_type("3331883814223314654")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1465000000000000000000000000"), currency::wide_difficulty_type("3331883814223314653")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1470000000000000000000000000"), currency::wide_difficulty_type("3318194044991611032")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1470000000000000000000000000"), currency::wide_difficulty_type("3318194044991611031")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1475000000000000000000000000"), currency::wide_difficulty_type("3304707988542440156")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1475000000000000000000000000"), currency::wide_difficulty_type("3304707988542440155")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1480000000000000000000000000"), currency::wide_difficulty_type("3291421131387084121")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1480000000000000000000000000"), currency::wide_difficulty_type("3291421131387084120")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1485000000000000000000000000"), currency::wide_difficulty_type("3278329092394623406")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1485000000000000000000000000"), currency::wide_difficulty_type("3278329092394623405")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1490000000000000000000000000"), currency::wide_difficulty_type("3265427617975516113")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1490000000000000000000000000"), currency::wide_difficulty_type("3265427617975516112")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1495000000000000000000000000"), currency::wide_difficulty_type("3252712577473977564")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1495000000000000000000000000"), currency::wide_difficulty_type("3252712577473977563")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1500000000000000000000000000"), currency::wide_difficulty_type("3240179958758675520")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1500000000000000000000000000"), currency::wide_difficulty_type("3240179958758675519")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1505000000000000000000000000"), currency::wide_difficulty_type("3227825864001853654")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1505000000000000000000000000"), currency::wide_difficulty_type("3227825864001853653")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1510000000000000000000000000"), currency::wide_difficulty_type("3215646505637555347")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1510000000000000000000000000"), currency::wide_difficulty_type("3215646505637555346")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1515000000000000000000000000"), currency::wide_difficulty_type("3203638202490143865")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1515000000000000000000000000"), currency::wide_difficulty_type("3203638202490143864")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1520000000000000000000000000"), currency::wide_difficulty_type("3191797376064806144")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1520000000000000000000000000"), currency::wide_difficulty_type("3191797376064806143")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1525000000000000000000000000"), currency::wide_difficulty_type("3180120546992187929")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1525000000000000000000000000"), currency::wide_difficulty_type("3180120546992187928")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1530000000000000000000000000"), currency::wide_difficulty_type("3168604331619740064")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1530000000000000000000000000"), currency::wide_difficulty_type("3168604331619740063")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1535000000000000000000000000"), currency::wide_difficulty_type("3157245438742761163")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1535000000000000000000000000"), currency::wide_difficulty_type("3157245438742761162")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1540000000000000000000000000"), currency::wide_difficulty_type("3146040666468502645")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1540000000000000000000000000"), currency::wide_difficulty_type("3146040666468502644")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1545000000000000000000000000"), currency::wide_difficulty_type("3134986899207059697")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1545000000000000000000000000"), currency::wide_difficulty_type("3134986899207059696")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1550000000000000000000000000"), currency::wide_difficulty_type("3124081104783107851")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1550000000000000000000000000"), currency::wide_difficulty_type("3124081104783107850")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1555000000000000000000000000"), currency::wide_difficulty_type("3113320331662860805")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1555000000000000000000000000"), currency::wide_difficulty_type("3113320331662860804")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1560000000000000000000000000"), currency::wide_difficulty_type("3102701706290922296")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1560000000000000000000000000"), currency::wide_difficulty_type("3102701706290922295")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1565000000000000000000000000"), currency::wide_difficulty_type("3092222430531984521")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1565000000000000000000000000"), currency::wide_difficulty_type("3092222430531984520")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1570000000000000000000000000"), currency::wide_difficulty_type("3081879779212588752")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1570000000000000000000000000"), currency::wide_difficulty_type("3081879779212588751")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1575000000000000000000000000"), currency::wide_difficulty_type("3071671097758411764")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1575000000000000000000000000"), currency::wide_difficulty_type("3071671097758411763")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1580000000000000000000000000"), currency::wide_difficulty_type("3061593799922775157")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1580000000000000000000000000"), currency::wide_difficulty_type("3061593799922775156")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1585000000000000000000000000"), currency::wide_difficulty_type("3051645365602294788")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1585000000000000000000000000"), currency::wide_difficulty_type("3051645365602294787")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1590000000000000000000000000"), currency::wide_difficulty_type("3041823338735795027")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1590000000000000000000000000"), currency::wide_difficulty_type("3041823338735795026")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1595000000000000000000000000"), currency::wide_difficulty_type("3032125325282808256")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1595000000000000000000000000"), currency::wide_difficulty_type("3032125325282808255")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1600000000000000000000000000"), currency::wide_difficulty_type("3022548991278164715")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1600000000000000000000000000"), currency::wide_difficulty_type("3022548991278164714")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1605000000000000000000000000"), currency::wide_difficulty_type("3013092060959352101")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1605000000000000000000000000"), currency::wide_difficulty_type("3013092060959352100")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1610000000000000000000000000"), currency::wide_difficulty_type("3003752314963488897")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1610000000000000000000000000"), currency::wide_difficulty_type("3003752314963488896")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1615000000000000000000000000"), currency::wide_difficulty_type("2994527588590910913")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1615000000000000000000000000"), currency::wide_difficulty_type("2994527588590910912")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1620000000000000000000000000"), currency::wide_difficulty_type("2985415770132517377")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1620000000000000000000000000"), currency::wide_difficulty_type("2985415770132517376")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1625000000000000000000000000"), currency::wide_difficulty_type("2976414799258161798")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1625000000000000000000000000"), currency::wide_difficulty_type("2976414799258161797")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1630000000000000000000000000"), currency::wide_difficulty_type("2967522665463504146")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1630000000000000000000000000"), currency::wide_difficulty_type("2967522665463504145")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1635000000000000000000000000"), currency::wide_difficulty_type("2958737406572865050")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1635000000000000000000000000"), currency::wide_difficulty_type("2958737406572865049")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1640000000000000000000000000"), currency::wide_difficulty_type("2950057107295740304")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1640000000000000000000000000"), currency::wide_difficulty_type("2950057107295740303")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1645000000000000000000000000"), currency::wide_difficulty_type("2941479897834745142")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1645000000000000000000000000"), currency::wide_difficulty_type("2941479897834745141")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1650000000000000000000000000"), currency::wide_difficulty_type("2933003952542863155")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1650000000000000000000000000"), currency::wide_difficulty_type("2933003952542863154")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1655000000000000000000000000"), currency::wide_difficulty_type("2924627488627974429")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1655000000000000000000000000"), currency::wide_difficulty_type("2924627488627974428")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1660000000000000000000000000"), currency::wide_difficulty_type("2916348764902732061")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1660000000000000000000000000"), currency::wide_difficulty_type("2916348764902732060")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1665000000000000000000000000"), currency::wide_difficulty_type("2908166080577945776")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1665000000000000000000000000"), currency::wide_difficulty_type("2908166080577945775")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1670000000000000000000000000"), currency::wide_difficulty_type("2900077774097716347")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1670000000000000000000000000"), currency::wide_difficulty_type("2900077774097716346")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1675000000000000000000000000"), currency::wide_difficulty_type("2892082222014645048")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1675000000000000000000000000"), currency::wide_difficulty_type("2892082222014645047")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1680000000000000000000000000"), currency::wide_difficulty_type("2884177837903518828")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1680000000000000000000000000"), currency::wide_difficulty_type("2884177837903518827")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1685000000000000000000000000"), currency::wide_difficulty_type("2876363071311944416")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1685000000000000000000000000"), currency::wide_difficulty_type("2876363071311944415")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1690000000000000000000000000"), currency::wide_difficulty_type("2868636406746473411")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1690000000000000000000000000"), currency::wide_difficulty_type("2868636406746473410")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1695000000000000000000000000"), currency::wide_difficulty_type("2860996362692825797")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1695000000000000000000000000"), currency::wide_difficulty_type("2860996362692825796")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1700000000000000000000000000"), currency::wide_difficulty_type("2853441490668881421")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1700000000000000000000000000"), currency::wide_difficulty_type("2853441490668881420")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1705000000000000000000000000"), currency::wide_difficulty_type("2845970374309167960")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1705000000000000000000000000"), currency::wide_difficulty_type("2845970374309167959")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1710000000000000000000000000"), currency::wide_difficulty_type("2838581628479629993")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1710000000000000000000000000"), currency::wide_difficulty_type("2838581628479629992")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1715000000000000000000000000"), currency::wide_difficulty_type("2831273898421517086")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1715000000000000000000000000"), currency::wide_difficulty_type("2831273898421517085")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1720000000000000000000000000"), currency::wide_difficulty_type("2824045858923279501")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1720000000000000000000000000"), currency::wide_difficulty_type("2824045858923279500")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1725000000000000000000000000"), currency::wide_difficulty_type("2816896213519408333")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1725000000000000000000000000"), currency::wide_difficulty_type("2816896213519408332")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1730000000000000000000000000"), currency::wide_difficulty_type("2809823693715202785")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1730000000000000000000000000"), currency::wide_difficulty_type("2809823693715202784")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1735000000000000000000000000"), currency::wide_difficulty_type("2802827058236490934")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1735000000000000000000000000"), currency::wide_difficulty_type("2802827058236490933")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1740000000000000000000000000"), currency::wide_difficulty_type("2795905092303371895")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1740000000000000000000000000"), currency::wide_difficulty_type("2795905092303371894")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1745000000000000000000000000"), currency::wide_difficulty_type("2789056606927086901")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1745000000000000000000000000"), currency::wide_difficulty_type("2789056606927086900")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1750000000000000000000000000"), currency::wide_difficulty_type("2782280438229164471")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1750000000000000000000000000"), currency::wide_difficulty_type("2782280438229164470")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1755000000000000000000000000"), currency::wide_difficulty_type("2775575446782020797")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1755000000000000000000000000"), currency::wide_difficulty_type("2775575446782020796")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1760000000000000000000000000"), currency::wide_difficulty_type("2768940516970230676")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1760000000000000000000000000"), currency::wide_difficulty_type("2768940516970230675")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1765000000000000000000000000"), currency::wide_difficulty_type("2762374556371716950")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1765000000000000000000000000"), currency::wide_difficulty_type("2762374556371716949")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1770000000000000000000000000"), currency::wide_difficulty_type("2755876495158137534")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1770000000000000000000000000"), currency::wide_difficulty_type("2755876495158137533")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1775000000000000000000000000"), currency::wide_difficulty_type("2749445285513778759")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1775000000000000000000000000"), currency::wide_difficulty_type("2749445285513778758")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1780000000000000000000000000"), currency::wide_difficulty_type("2743079901072292083")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1780000000000000000000000000"), currency::wide_difficulty_type("2743079901072292082")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1785000000000000000000000000"), currency::wide_difficulty_type("2736779336370638195")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1785000000000000000000000000"), currency::wide_difficulty_type("2736779336370638194")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1790000000000000000000000000"), currency::wide_difficulty_type("2730542606319628350")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1790000000000000000000000000"), currency::wide_difficulty_type("2730542606319628349")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1795000000000000000000000000"), currency::wide_difficulty_type("2724368745690477334")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1795000000000000000000000000"), currency::wide_difficulty_type("2724368745690477333")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1800000000000000000000000000"), currency::wide_difficulty_type("2718256808616805999")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1800000000000000000000000000"), currency::wide_difficulty_type("2718256808616805998")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1805000000000000000000000000"), currency::wide_difficulty_type("2712205868111553685")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1805000000000000000000000000"), currency::wide_difficulty_type("2712205868111553684")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1810000000000000000000000000"), currency::wide_difficulty_type("2706215015598282356")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1810000000000000000000000000"), currency::wide_difficulty_type("2706215015598282355")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1815000000000000000000000000"), currency::wide_difficulty_type("2700283360456374682")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1815000000000000000000000000"), currency::wide_difficulty_type("2700283360456374681")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1820000000000000000000000000"), currency::wide_difficulty_type("2694410029579647946")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1820000000000000000000000000"), currency::wide_difficulty_type("2694410029579647945")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1825000000000000000000000000"), currency::wide_difficulty_type("2688594166947924317")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1825000000000000000000000000"), currency::wide_difficulty_type("2688594166947924316")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1830000000000000000000000000"), currency::wide_difficulty_type("2682834933211115942")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1830000000000000000000000000"), currency::wide_difficulty_type("2682834933211115941")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1835000000000000000000000000"), currency::wide_difficulty_type("2677131505285400445")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1835000000000000000000000000"), currency::wide_difficulty_type("2677131505285400444")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1840000000000000000000000000"), currency::wide_difficulty_type("2671483075961078746")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1840000000000000000000000000"), currency::wide_difficulty_type("2671483075961078745")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1845000000000000000000000000"), currency::wide_difficulty_type("2665888853521722831")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1845000000000000000000000000"), currency::wide_difficulty_type("2665888853521722830")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1850000000000000000000000000"), currency::wide_difficulty_type("2660348061374236044")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1850000000000000000000000000"), currency::wide_difficulty_type("2660348061374236043")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1855000000000000000000000000"), currency::wide_difficulty_type("2654859937689462866")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1855000000000000000000000000"), currency::wide_difficulty_type("2654859937689462865")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1860000000000000000000000000"), currency::wide_difficulty_type("2649423735052998850")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1860000000000000000000000000"), currency::wide_difficulty_type("2649423735052998849")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1865000000000000000000000000"), currency::wide_difficulty_type("2644038720125864563")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1865000000000000000000000000"), currency::wide_difficulty_type("2644038720125864562")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1870000000000000000000000000"), currency::wide_difficulty_type("2638704173314719972")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1870000000000000000000000000"), currency::wide_difficulty_type("2638704173314719971")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1875000000000000000000000000"), currency::wide_difficulty_type("2633419388451307786")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1875000000000000000000000000"), currency::wide_difficulty_type("2633419388451307785")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1880000000000000000000000000"), currency::wide_difficulty_type("2628183672480825857")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1880000000000000000000000000"), currency::wide_difficulty_type("2628183672480825856")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1885000000000000000000000000"), currency::wide_difficulty_type("2622996345158939776")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1885000000000000000000000000"), currency::wide_difficulty_type("2622996345158939775")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1890000000000000000000000000"), currency::wide_difficulty_type("2617856738757157503")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1890000000000000000000000000"), currency::wide_difficulty_type("2617856738757157502")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1895000000000000000000000000"), currency::wide_difficulty_type("2612764197776297996")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1895000000000000000000000000"), currency::wide_difficulty_type("2612764197776297995")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1900000000000000000000000000"), currency::wide_difficulty_type("2607718078667795597")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1900000000000000000000000000"), currency::wide_difficulty_type("2607718078667795596")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1905000000000000000000000000"), currency::wide_difficulty_type("2602717749562591346")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1905000000000000000000000000"), currency::wide_difficulty_type("2602717749562591345")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1910000000000000000000000000"), currency::wide_difficulty_type("2597762590007371298")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1910000000000000000000000000"), currency::wide_difficulty_type("2597762590007371297")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1915000000000000000000000000"), currency::wide_difficulty_type("2592851990707920649")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1915000000000000000000000000"), currency::wide_difficulty_type("2592851990707920648")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1920000000000000000000000000"), currency::wide_difficulty_type("2587985353279370678")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1920000000000000000000000000"), currency::wide_difficulty_type("2587985353279370677")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1925000000000000000000000000"), currency::wide_difficulty_type("2583162090003123494")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1925000000000000000000000000"), currency::wide_difficulty_type("2583162090003123493")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1930000000000000000000000000"), currency::wide_difficulty_type("2578381623590247222")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1930000000000000000000000000"), currency::wide_difficulty_type("2578381623590247221")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1935000000000000000000000000"), currency::wide_difficulty_type("2573643386951141553")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1935000000000000000000000000"), currency::wide_difficulty_type("2573643386951141552")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1940000000000000000000000000"), currency::wide_difficulty_type("2568946822971280653")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1940000000000000000000000000"), currency::wide_difficulty_type("2568946822971280652")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1945000000000000000000000000"), currency::wide_difficulty_type("2564291384292847167")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1945000000000000000000000000"), currency::wide_difficulty_type("2564291384292847166")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1950000000000000000000000000"), currency::wide_difficulty_type("2559676533102077564")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1950000000000000000000000000"), currency::wide_difficulty_type("2559676533102077563")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1955000000000000000000000000"), currency::wide_difficulty_type("2555101740922145295")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1955000000000000000000000000"), currency::wide_difficulty_type("2555101740922145294")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1960000000000000000000000000"), currency::wide_difficulty_type("2550566488411414260")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1960000000000000000000000000"), currency::wide_difficulty_type("2550566488411414259")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1965000000000000000000000000"), currency::wide_difficulty_type("2546070265166900802")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1965000000000000000000000000"), currency::wide_difficulty_type("2546070265166900801")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1970000000000000000000000000"), currency::wide_difficulty_type("2541612569532788044")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1970000000000000000000000000"), currency::wide_difficulty_type("2541612569532788043")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1975000000000000000000000000"), currency::wide_difficulty_type("2537192908413841681")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1975000000000000000000000000"), currency::wide_difficulty_type("2537192908413841680")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1980000000000000000000000000"), currency::wide_difficulty_type("2532810797093581470")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1980000000000000000000000000"), currency::wide_difficulty_type("2532810797093581469")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1985000000000000000000000000"), currency::wide_difficulty_type("2528465759057067615")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1985000000000000000000000000"), currency::wide_difficulty_type("2528465759057067614")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1990000000000000000000000000"), currency::wide_difficulty_type("2524157325818165947")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1990000000000000000000000000"), currency::wide_difficulty_type("2524157325818165946")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1995000000000000000000000000"), currency::wide_difficulty_type("2519885036751160428")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("1995000000000000000000000000"), currency::wide_difficulty_type("2519885036751160427")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2000000000000000000000000000"), currency::wide_difficulty_type("2515648438926585831")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2000000000000000000000000000"), currency::wide_difficulty_type("2515648438926585830")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2005000000000000000000000000"), currency::wide_difficulty_type("2511447086951157734")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2005000000000000000000000000"), currency::wide_difficulty_type("2511447086951157733")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2010000000000000000000000000"), currency::wide_difficulty_type("2507280542811681016")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2010000000000000000000000000"), currency::wide_difficulty_type("2507280542811681015")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2015000000000000000000000000"), currency::wide_difficulty_type("2503148375722821955")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2015000000000000000000000000"), currency::wide_difficulty_type("2503148375722821954")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2020000000000000000000000000"), currency::wide_difficulty_type("2499050161978632830")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2020000000000000000000000000"), currency::wide_difficulty_type("2499050161978632829")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2025000000000000000000000000"), currency::wide_difficulty_type("2494985484807721531")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2025000000000000000000000000"), currency::wide_difficulty_type("2494985484807721530")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2030000000000000000000000000"), currency::wide_difficulty_type("2490953934231962225")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2030000000000000000000000000"), currency::wide_difficulty_type("2490953934231962224")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2035000000000000000000000000"), currency::wide_difficulty_type("2486955106928646474")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2035000000000000000000000000"), currency::wide_difficulty_type("2486955106928646473")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2040000000000000000000000000"), currency::wide_difficulty_type("2482988606095977448")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2040000000000000000000000000"), currency::wide_difficulty_type("2482988606095977447")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2045000000000000000000000000"), currency::wide_difficulty_type("2479054041321813044")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2045000000000000000000000000"), currency::wide_difficulty_type("2479054041321813043")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2050000000000000000000000000"), currency::wide_difficulty_type("2475151028455566714")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2050000000000000000000000000"), currency::wide_difficulty_type("2475151028455566713")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2055000000000000000000000000"), currency::wide_difficulty_type("2471279189483177729")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2055000000000000000000000000"), currency::wide_difficulty_type("2471279189483177728")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2060000000000000000000000000"), currency::wide_difficulty_type("2467438152405065410")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2060000000000000000000000000"), currency::wide_difficulty_type("2467438152405065409")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2065000000000000000000000000"), currency::wide_difficulty_type("2463627551116984585")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2065000000000000000000000000"), currency::wide_difficulty_type("2463627551116984584")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2070000000000000000000000000"), currency::wide_difficulty_type("2459847025293702108")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2070000000000000000000000000"), currency::wide_difficulty_type("2459847025293702107")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2075000000000000000000000000"), currency::wide_difficulty_type("2456096220275416833")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2075000000000000000000000000"), currency::wide_difficulty_type("2456096220275416832")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2080000000000000000000000000"), currency::wide_difficulty_type("2452374786956847850")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2080000000000000000000000000"), currency::wide_difficulty_type("2452374786956847849")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2085000000000000000000000000"), currency::wide_difficulty_type("2448682381678918120")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2085000000000000000000000000"), currency::wide_difficulty_type("2448682381678918119")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2090000000000000000000000000"), currency::wide_difficulty_type("2445018666122962957")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2090000000000000000000000000"), currency::wide_difficulty_type("2445018666122962956")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2095000000000000000000000000"), currency::wide_difficulty_type("2441383307207394935")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2095000000000000000000000000"), currency::wide_difficulty_type("2441383307207394934")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2100000000000000000000000000"), currency::wide_difficulty_type("2437775976986758940")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2100000000000000000000000000"), currency::wide_difficulty_type("2437775976986758939")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2105000000000000000000000000"), currency::wide_difficulty_type("2434196352553113130")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2105000000000000000000000000"), currency::wide_difficulty_type("2434196352553113129")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2110000000000000000000000000"), currency::wide_difficulty_type("2430644115939673490")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2110000000000000000000000000"), currency::wide_difficulty_type("2430644115939673489")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2115000000000000000000000000"), currency::wide_difficulty_type("2427118954026661635")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2115000000000000000000000000"), currency::wide_difficulty_type("2427118954026661634")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2120000000000000000000000000"), currency::wide_difficulty_type("2423620558449297271")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2120000000000000000000000000"), currency::wide_difficulty_type("2423620558449297270")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2125000000000000000000000000"), currency::wide_difficulty_type("2420148625507878558")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2125000000000000000000000000"), currency::wide_difficulty_type("2420148625507878557")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2130000000000000000000000000"), currency::wide_difficulty_type("2416702856079895306")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2130000000000000000000000000"), currency::wide_difficulty_type("2416702856079895305")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2135000000000000000000000000"), currency::wide_difficulty_type("2413282955534121575")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2135000000000000000000000000"), currency::wide_difficulty_type("2413282955534121574")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2140000000000000000000000000"), currency::wide_difficulty_type("2409888633646635875")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2140000000000000000000000000"), currency::wide_difficulty_type("2409888633646635874")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2145000000000000000000000000"), currency::wide_difficulty_type("2406519604518718694")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2145000000000000000000000000"), currency::wide_difficulty_type("2406519604518718693")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2150000000000000000000000000"), currency::wide_difficulty_type("2403175586496578565")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2150000000000000000000000000"), currency::wide_difficulty_type("2403175586496578564")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2155000000000000000000000000"), currency::wide_difficulty_type("2399856302092859343")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2155000000000000000000000000"), currency::wide_difficulty_type("2399856302092859342")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2160000000000000000000000000"), currency::wide_difficulty_type("2396561477909882754")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2160000000000000000000000000"), currency::wide_difficulty_type("2396561477909882753")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2165000000000000000000000000"), currency::wide_difficulty_type("2393290844564581615")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2165000000000000000000000000"), currency::wide_difficulty_type("2393290844564581614")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2170000000000000000000000000"), currency::wide_difficulty_type("2390044136615080450")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2170000000000000000000000000"), currency::wide_difficulty_type("2390044136615080449")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2175000000000000000000000000"), currency::wide_difficulty_type("2386821092488881460")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2175000000000000000000000000"), currency::wide_difficulty_type("2386821092488881459")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2180000000000000000000000000"), currency::wide_difficulty_type("2383621454412615068")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2180000000000000000000000000"), currency::wide_difficulty_type("2383621454412615067")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2185000000000000000000000000"), currency::wide_difficulty_type("2380444968343315390")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2185000000000000000000000000"), currency::wide_difficulty_type("2380444968343315389")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2190000000000000000000000000"), currency::wide_difficulty_type("2377291383901182163")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2190000000000000000000000000"), currency::wide_difficulty_type("2377291383901182162")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2195000000000000000000000000"), currency::wide_difficulty_type("2374160454303791767")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2195000000000000000000000000"), currency::wide_difficulty_type("2374160454303791766")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2200000000000000000000000000"), currency::wide_difficulty_type("2371051936301721016")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2200000000000000000000000000"), currency::wide_difficulty_type("2371051936301721015")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2205000000000000000000000000"), currency::wide_difficulty_type("2367965590115548453")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2205000000000000000000000000"), currency::wide_difficulty_type("2367965590115548452")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2210000000000000000000000000"), currency::wide_difficulty_type("2364901179374198904")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2210000000000000000000000000"), currency::wide_difficulty_type("2364901179374198903")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2215000000000000000000000000"), currency::wide_difficulty_type("2361858471054597963")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2215000000000000000000000000"), currency::wide_difficulty_type("2361858471054597962")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2220000000000000000000000000"), currency::wide_difficulty_type("2358837235422604080")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2220000000000000000000000000"), currency::wide_difficulty_type("2358837235422604079")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2225000000000000000000000000"), currency::wide_difficulty_type("2355837245975186797")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2225000000000000000000000000"), currency::wide_difficulty_type("2355837245975186796")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2230000000000000000000000000"), currency::wide_difficulty_type("2352858279383820553")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2230000000000000000000000000"), currency::wide_difficulty_type("2352858279383820552")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2235000000000000000000000000"), currency::wide_difficulty_type("2349900115439064383")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2235000000000000000000000000"), currency::wide_difficulty_type("2349900115439064382")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2240000000000000000000000000"), currency::wide_difficulty_type("2346962536996298585")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2240000000000000000000000000"), currency::wide_difficulty_type("2346962536996298584")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2245000000000000000000000000"), currency::wide_difficulty_type("2344045329922590311")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2245000000000000000000000000"), currency::wide_difficulty_type("2344045329922590310")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2250000000000000000000000000"), currency::wide_difficulty_type("2341148283044660753")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2250000000000000000000000000"), currency::wide_difficulty_type("2341148283044660752")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2255000000000000000000000000"), currency::wide_difficulty_type("2338271188097927374")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2255000000000000000000000000"), currency::wide_difficulty_type("2338271188097927373")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2260000000000000000000000000"), currency::wide_difficulty_type("2335413839676595372")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2260000000000000000000000000"), currency::wide_difficulty_type("2335413839676595371")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2265000000000000000000000000"), currency::wide_difficulty_type("2332576035184773241")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2265000000000000000000000000"), currency::wide_difficulty_type("2332576035184773240")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2270000000000000000000000000"), currency::wide_difficulty_type("2329757574788588008")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2270000000000000000000000000"), currency::wide_difficulty_type("2329757574788588007")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2275000000000000000000000000"), currency::wide_difficulty_type("2326958261369276374")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2275000000000000000000000000"), currency::wide_difficulty_type("2326958261369276373")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2280000000000000000000000000"), currency::wide_difficulty_type("2324177900477228635")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2280000000000000000000000000"), currency::wide_difficulty_type("2324177900477228634")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2285000000000000000000000000"), currency::wide_difficulty_type("2321416300286962874")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2285000000000000000000000000"), currency::wide_difficulty_type("2321416300286962873")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2290000000000000000000000000"), currency::wide_difficulty_type("2318673271553007540")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2290000000000000000000000000"), currency::wide_difficulty_type("2318673271553007539")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2295000000000000000000000000"), currency::wide_difficulty_type("2315948627566671091")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2295000000000000000000000000"), currency::wide_difficulty_type("2315948627566671090")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2300000000000000000000000000"), currency::wide_difficulty_type("2313242184113677981")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2300000000000000000000000000"), currency::wide_difficulty_type("2313242184113677980")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2305000000000000000000000000"), currency::wide_difficulty_type("2310553759432650776")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2305000000000000000000000000"), currency::wide_difficulty_type("2310553759432650775")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2310000000000000000000000000"), currency::wide_difficulty_type("2307883174174418780")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2310000000000000000000000000"), currency::wide_difficulty_type("2307883174174418779")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2315000000000000000000000000"), currency::wide_difficulty_type("2305230251362134008")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2315000000000000000000000000"), currency::wide_difficulty_type("2305230251362134007")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2320000000000000000000000000"), currency::wide_difficulty_type("2302594816352175903")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2320000000000000000000000000"), currency::wide_difficulty_type("2302594816352175902")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2325000000000000000000000000"), currency::wide_difficulty_type("2299976696795826646")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2325000000000000000000000000"), currency::wide_difficulty_type("2299976696795826645")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2330000000000000000000000000"), currency::wide_difficulty_type("2297375722601699401")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2330000000000000000000000000"), currency::wide_difficulty_type("2297375722601699400")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2335000000000000000000000000"), currency::wide_difficulty_type("2294791725898902291")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2335000000000000000000000000"), currency::wide_difficulty_type("2294791725898902290")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2340000000000000000000000000"), currency::wide_difficulty_type("2292224541000921359")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2340000000000000000000000000"), currency::wide_difficulty_type("2292224541000921358")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2345000000000000000000000000"), currency::wide_difficulty_type("2289674004370206180")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2345000000000000000000000000"), currency::wide_difficulty_type("2289674004370206179")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2350000000000000000000000000"), currency::wide_difficulty_type("2287139954583442248")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2350000000000000000000000000"), currency::wide_difficulty_type("2287139954583442247")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2355000000000000000000000000"), currency::wide_difficulty_type("2284622232297494626")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2355000000000000000000000000"), currency::wide_difficulty_type("2284622232297494625")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2360000000000000000000000000"), currency::wide_difficulty_type("2282120680216007790")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2360000000000000000000000000"), currency::wide_difficulty_type("2282120680216007789")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2365000000000000000000000000"), currency::wide_difficulty_type("2279635143056646954")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2365000000000000000000000000"), currency::wide_difficulty_type("2279635143056646953")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2370000000000000000000000000"), currency::wide_difficulty_type("2277165467518966551")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2370000000000000000000000000"), currency::wide_difficulty_type("2277165467518966550")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2375000000000000000000000000"), currency::wide_difficulty_type("2274711502252891900")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2375000000000000000000000000"), currency::wide_difficulty_type("2274711502252891899")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2380000000000000000000000000"), currency::wide_difficulty_type("2272273097827800467")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2380000000000000000000000000"), currency::wide_difficulty_type("2272273097827800466")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2385000000000000000000000000"), currency::wide_difficulty_type("2269850106702189431")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2385000000000000000000000000"), currency::wide_difficulty_type("2269850106702189430")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2390000000000000000000000000"), currency::wide_difficulty_type("2267442383193916647")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2390000000000000000000000000"), currency::wide_difficulty_type("2267442383193916646")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2395000000000000000000000000"), currency::wide_difficulty_type("2265049783451002382")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2395000000000000000000000000"), currency::wide_difficulty_type("2265049783451002381")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2400000000000000000000000000"), currency::wide_difficulty_type("2262672165422979551")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2400000000000000000000000000"), currency::wide_difficulty_type("2262672165422979550")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2405000000000000000000000000"), currency::wide_difficulty_type("2260309388832780454")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2405000000000000000000000000"), currency::wide_difficulty_type("2260309388832780453")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2410000000000000000000000000"), currency::wide_difficulty_type("2257961315149148341")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2410000000000000000000000000"), currency::wide_difficulty_type("2257961315149148340")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2415000000000000000000000000"), currency::wide_difficulty_type("2255627807559562398")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2415000000000000000000000000"), currency::wide_difficulty_type("2255627807559562397")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2420000000000000000000000000"), currency::wide_difficulty_type("2253308730943665060")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2420000000000000000000000000"), currency::wide_difficulty_type("2253308730943665059")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2425000000000000000000000000"), currency::wide_difficulty_type("2251003951847180788")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2425000000000000000000000000"), currency::wide_difficulty_type("2251003951847180787")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2430000000000000000000000000"), currency::wide_difficulty_type("2248713338456315756")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2430000000000000000000000000"), currency::wide_difficulty_type("2248713338456315755")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2435000000000000000000000000"), currency::wide_difficulty_type("2246436760572628130")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2435000000000000000000000000"), currency::wide_difficulty_type("2246436760572628129")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2440000000000000000000000000"), currency::wide_difficulty_type("2244174089588358868")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2440000000000000000000000000"), currency::wide_difficulty_type("2244174089588358867")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2445000000000000000000000000"), currency::wide_difficulty_type("2241925198462213242")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2445000000000000000000000000"), currency::wide_difficulty_type("2241925198462213241")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2450000000000000000000000000"), currency::wide_difficulty_type("2239689961695583486")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2450000000000000000000000000"), currency::wide_difficulty_type("2239689961695583485")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2455000000000000000000000000"), currency::wide_difficulty_type("2237468255309203239")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2455000000000000000000000000"), currency::wide_difficulty_type("2237468255309203238")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2460000000000000000000000000"), currency::wide_difficulty_type("2235259956820224654")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2460000000000000000000000000"), currency::wide_difficulty_type("2235259956820224653")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2465000000000000000000000000"), currency::wide_difficulty_type("2233064945219709271")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2465000000000000000000000000"), currency::wide_difficulty_type("2233064945219709270")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2470000000000000000000000000"), currency::wide_difficulty_type("2230883100950523974")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2470000000000000000000000000"), currency::wide_difficulty_type("2230883100950523973")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2475000000000000000000000000"), currency::wide_difficulty_type("2228714305885633552")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2475000000000000000000000000"), currency::wide_difficulty_type("2228714305885633551")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2480000000000000000000000000"), currency::wide_difficulty_type("2226558443306781569")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2480000000000000000000000000"), currency::wide_difficulty_type("2226558443306781568")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2485000000000000000000000000"), currency::wide_difficulty_type("2224415397883551498")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2485000000000000000000000000"), currency::wide_difficulty_type("2224415397883551497")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2490000000000000000000000000"), currency::wide_difficulty_type("2222285055652800188")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2490000000000000000000000000"), currency::wide_difficulty_type("2222285055652800187")); + ASSERT_FALSE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2495000000000000000000000000"), currency::wide_difficulty_type("2220167303998455999")); + ASSERT_TRUE(res); + res = if_alt_chain_stronger_hf4(currency::wide_difficulty_type("2495000000000000000000000000"), currency::wide_difficulty_type("2220167303998455998")); + ASSERT_FALSE(res); + + }