@@ -132,6 +132,18 @@ BOOST_AUTO_TEST_CASE(rpc_createraw_op_return)
132132
133133BOOST_AUTO_TEST_CASE (rpc_format_monetary_values)
134134{
135+ BOOST_CHECK (ValueFromAmount (0LL , false ).write () == " 0" );
136+ BOOST_CHECK (ValueFromAmount (1LL , false ).write () == " 1" );
137+ BOOST_CHECK (ValueFromAmount (17622195LL , false ).write () == " 17622195" );
138+ BOOST_CHECK (ValueFromAmount (50000000LL , false ).write () == " 50000000" );
139+ BOOST_CHECK (ValueFromAmount (89898989LL , false ).write () == " 89898989" );
140+ BOOST_CHECK (ValueFromAmount (100000000LL , false ).write () == " 100000000" ); // 1 CURRENCY_UNIT
141+ BOOST_CHECK (ValueFromAmount (100000000000000LL , false ).write () == " 100000000000000" ); // 1 M CURRENCY_UNIT
142+ BOOST_CHECK (ValueFromAmount (2100000000000000LL , false ).write () == " 2100000000000000" ); // 21 M CURRENCY_UNIT
143+ BOOST_CHECK (ValueFromAmount (10000000000000000LL , false ).write () == " 10000000000000000" ); // 100 M CURRENCY_UNIT (100 000 000 0000 0000 MINIMAL_UNIT)
144+ BOOST_CHECK (ValueFromAmount (2099999999999990LL , false ).write () == " 2099999999999990" );
145+ BOOST_CHECK (ValueFromAmount (2099999999999999LL , false ).write () == " 2099999999999999" );
146+
135147 BOOST_CHECK (ValueFromAmount (0LL ).write () == " 0.00000000" );
136148 BOOST_CHECK (ValueFromAmount (1LL ).write () == " 0.00000001" );
137149 BOOST_CHECK (ValueFromAmount (17622195LL ).write () == " 0.17622195" );
@@ -174,6 +186,19 @@ static UniValue ValueFromString(const std::string &str)
174186
175187BOOST_AUTO_TEST_CASE (rpc_parse_monetary_values)
176188{
189+ BOOST_CHECK_THROW (AmountFromValue (ValueFromString (" -1" ), false ), UniValue);
190+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 0" ), false ), 0LL );
191+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 1" ), false ), 1LL );
192+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 17622195" ), false ), 17622195LL );
193+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 50000000" ), false ), 50000000LL );
194+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 89898989" ), false ), 89898989LL );
195+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 100000000" ), false ), 100000000LL ); // 1 CURRENCY_UNIT
196+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 100000000000000" ), false ), 100000000000000LL ); // 1 M CURRENCY_UNIT
197+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 2100000000000000" ), false ), 2100000000000000LL ); // 21 M CURRENCY_UNIT
198+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 2099999999999999" ), false ), 2099999999999999LL );
199+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 2099999999999990" ), false ), 2099999999999990LL );
200+ BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 209999999999999" ), false ), 209999999999999LL );
201+
177202 BOOST_CHECK_THROW (AmountFromValue (ValueFromString (" -0.00000001" )), UniValue);
178203 BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 0" )), 0LL );
179204 BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 0.00000000" )), 0LL );
0 commit comments