diff --git a/test/256_tests.cc b/test/256_tests.cc index cf2018664e9ad406fea5dd2ca58403ffce13963c..3de8f54f1d3bcefdb8844534088b6d5bc38de2cb 100644 --- a/test/256_tests.cc +++ b/test/256_tests.cc @@ -3235,6 +3235,79 @@ TEST(MathTests, Div256OneMax256) { ASSERT_STREQ(dap_chain_balance_print(c), (bmp::uint256_t(lhs) / bmp::uint256_t(rhs)).str().c_str()); } +TEST(MathTests, DivMoreToLess) { + uint256_t a, b, c = uint256_0; + + string lhs = "25000"; + string rhs = "10000"; + + a = dap_chain_balance_scan(lhs.c_str()); + b = dap_chain_balance_scan(rhs.c_str()); + DIV_256_COIN(a, b, &c); + ASSERT_STREQ(dap_chain_balance_to_coins(c), "2.5"); +} + +TEST(MathTests, DivMoreToLessPrimes) { + uint256_t a, b, c = uint256_0; + + string lhs = "23"; + string rhs = "13"; + + a = dap_chain_balance_scan(lhs.c_str()); + b = dap_chain_balance_scan(rhs.c_str()); + DIV_256_COIN(a, b, &c); + ASSERT_STREQ(dap_chain_balance_to_coins(c), "1.76923076923076923"); +} + +TEST(MathTests, DivMoreToLessClassic) { + uint256_t a, b, c = uint256_0; + + string lhs = "2500"; + string rhs = "1000"; + + a = dap_chain_balance_scan(lhs.c_str()); + b = dap_chain_balance_scan(rhs.c_str()); + DIV_256_COIN(a, b, &c); + ASSERT_STREQ(dap_chain_balance_to_coins(c), "2.5"); +} + +TEST(MathTests, DivMoreToLessSixFour) { + uint256_t a, b, c = uint256_0; + + string lhs = "6"; + string rhs = "4"; + + a = dap_chain_balance_scan(lhs.c_str()); + b = dap_chain_balance_scan(rhs.c_str()); + DIV_256_COIN(a, b, &c); + ASSERT_STREQ(dap_chain_balance_to_coins(c), "1.5"); +} + +TEST(MathTests, DivMoreToLessSixThree) { + uint256_t a, b, c = uint256_0; + + string lhs = "6"; + string rhs = "3"; + + a = dap_chain_balance_scan(lhs.c_str()); + b = dap_chain_balance_scan(rhs.c_str()); + DIV_256_COIN(a, b, &c); + ASSERT_STREQ(dap_chain_balance_to_coins(c), "2.0"); +} + +TEST(MathTests, DivMoreToLessBigBig) { + uint256_t a, b, c = uint256_0; + + string lhs = "1.0e+57"; + string rhs = "1.0e+23"; + + a = dap_chain_balance_scan(lhs.c_str()); + b = dap_chain_balance_scan(rhs.c_str()); + DIV_256_COIN(a, b, &c); + ASSERT_STREQ(dap_chain_balance_to_coins(c), "10000000000000000000000000000000000.0"); +} + + TEST_F(RandomMathTests, Div256) { bmp::uint256_t boost_a(gen256()), boost_b(gen256());