Skip to content

Commit

Permalink
Use consts for asset values in extended_asset test.
Browse files Browse the repository at this point in the history
  • Loading branch information
ScottBailey committed Mar 23, 2023
1 parent 3f60611 commit 84d75fe
Showing 1 changed file with 68 additions and 59 deletions.
127 changes: 68 additions & 59 deletions tests/unit/asset_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -364,20 +364,29 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)
static constexpr extended_symbol ext_sym_no_prec{sym_no_prec, name{"eosioaccountj"}};
static constexpr extended_symbol ext_sym_prec{sym_prec, name{"eosioaccountj"}};

static const asset asset_no_prec{0LL, sym_no_prec};
// Assets with sym_no_prec
static const auto a0 = asset{ 0LL, sym_no_prec}; // AKA asset_no_prec
static const auto a1 = asset{ 1LL, sym_no_prec};
static const auto a2 = asset{ 2LL, sym_no_prec};
static const auto a4 = asset{ 4LL, sym_no_prec};
static const auto aneg1 = asset{ -1LL, sym_no_prec};
static const auto aneg2 = asset{ -2LL, sym_no_prec};
static const auto aneg4 = asset{ -4LL, sym_no_prec};

// Assets with sym_prec
static const asset asset_prec{0LL, sym_prec};

//// extended_asset()
CHECK_EQUAL( extended_asset{}.quantity, asset{} )
CHECK_EQUAL( extended_asset{}.contract, name{} )

//// extended_asset(int64_t, extended_symbol)
CHECK_EQUAL( (extended_asset{{},ext_sym_no_prec}.quantity), (asset{0LL, sym_no_prec}) )
CHECK_EQUAL( (extended_asset{{},ext_sym_no_prec}.quantity), (a0) )
CHECK_EQUAL( (extended_asset{{},ext_sym_no_prec}.contract), (name{"eosioaccountj"}) )

//// extended_asset(asset, name)
CHECK_EQUAL( (extended_asset{asset_no_prec, name{"eosioaccountj"}}.quantity), (asset{ 0LL, sym_no_prec}) )
CHECK_EQUAL( (extended_asset{asset_no_prec, name{"eosioaccountj"}}.contract), (name{"eosioaccountj"}) )
CHECK_EQUAL( (extended_asset{a0, name{"eosioaccountj"}}.quantity), (a0) )
CHECK_EQUAL( (extended_asset{a0, name{"eosioaccountj"}}.contract), (name{"eosioaccountj"}) )

// ------------------------------------------
// extended_symbol get_extended_symbol()const
Expand Down Expand Up @@ -426,13 +435,13 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// -------------------------------
// extended_asset operator-()const
CHECK_EQUAL( (-extended_asset{asset{ 0, sym_no_prec}, {}}.quantity), (extended_asset{asset_no_prec, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{-0, sym_no_prec}, {}}.quantity), (extended_asset{asset_no_prec, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{ 0, sym_no_prec}, {}}.quantity), (extended_asset{a0, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{-0, sym_no_prec}, {}}.quantity), (extended_asset{a0, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{ 0, sym_prec}, {}}.quantity), (extended_asset{asset_prec, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{-0, sym_prec}, {}}.quantity), (extended_asset{asset_prec, {}}.quantity) )

CHECK_EQUAL( (-extended_asset{asset{1LL, sym_no_prec}, {}}.quantity), (extended_asset{asset{-1LL, sym_no_prec}, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{1LL, sym_no_prec}, {}}.quantity), (extended_asset{asset{-1LL, sym_no_prec}, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{a1, {}}.quantity), (extended_asset{aneg1, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{a1, {}}.quantity), (extended_asset{aneg1, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{1LL, sym_prec}, {}}.quantity), (extended_asset{asset{-1LL, sym_prec}, {}}.quantity) )
CHECK_EQUAL( (-extended_asset{asset{1LL, sym_prec}, {}}.quantity), (extended_asset{asset{-1LL, sym_prec}, {}}.quantity) )

Expand All @@ -443,59 +452,59 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// -----------------------------------------------------------------------------
// friend extended_asset operator+(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset{0LL, sym_no_prec}, {}} + extended_asset{asset{ 0LL, sym_no_prec}, {}}), (extended_asset{asset_no_prec, {}}) )
CHECK_EQUAL( (extended_asset{asset{1LL, sym_no_prec}, {}} + extended_asset{asset{-1LL, sym_no_prec}, {}}), (extended_asset{asset_no_prec, {}}) )
CHECK_EQUAL( (extended_asset{a0, {}} + extended_asset{a0, {}}), (extended_asset{a0, {}}) )
CHECK_EQUAL( (extended_asset{a1, {}} + extended_asset{aneg1, {}}), (extended_asset{a0, {}}) )

CHECK_ASSERT( "type mismatch", (
[&]() {
extended_asset{asset_no_prec, name{"eosioaccountj"}} + extended_asset{asset_no_prec, name{"jtnuoccaoisoe"}};
extended_asset{a0, name{"eosioaccountj"}} + extended_asset{a0, name{"jtnuoccaoisoe"}};
})
)

// -------------------------------------------------------------------------
// friend extended_asset& operator+=(extended_asset&, const extended_asset&)
extended_asset temp{asset_no_prec, {}};
CHECK_EQUAL( (temp += temp), (extended_asset{asset_no_prec, {}}) )
temp = extended_asset{asset{1LL, sym_no_prec}, {}};
CHECK_EQUAL( (temp += extended_asset{asset{-1LL, sym_no_prec}, {}}), (extended_asset{asset_no_prec, {}}) )
extended_asset temp{a0, {}};
CHECK_EQUAL( (temp += temp), (extended_asset{a0, {}}) )
temp = extended_asset{a1, {}};
CHECK_EQUAL( (temp += extended_asset{aneg1, {}}), (extended_asset{a0, {}}) )

CHECK_ASSERT( "type mismatch", (
[&]() {
temp += extended_asset{asset_no_prec, name{"eosioaccountj"}};
temp += extended_asset{a0, name{"eosioaccountj"}};
})
)

// -----------------------------------------------------------------------------
// friend extended_asset operator-(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset_no_prec, {}} - extended_asset{asset_no_prec, {}}),
(extended_asset{asset_no_prec, {}}) )
CHECK_EQUAL( (extended_asset{asset{1LL, sym_no_prec}, {}} - extended_asset{asset{1LL, sym_no_prec}, {}}),
(extended_asset{asset{asset_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{a0, {}} - extended_asset{a0, {}}),
(extended_asset{a0, {}}) )
CHECK_EQUAL( (extended_asset{a1, {}} - extended_asset{a1, {}}),
(extended_asset{asset{a0}, {}}) )

CHECK_ASSERT( "type mismatch", (
[&]() {
extended_asset{asset_no_prec, name{"eosioaccountj"}} - extended_asset{asset_no_prec, name{"jtnuoccaoisoe"}};
extended_asset{a0, name{"eosioaccountj"}} - extended_asset{a0, name{"jtnuoccaoisoe"}};
})
)

// --------------------------------------------------------------------------
// friend extended_asset& operator-=(extended_asset&, const extended_asset&)
temp = extended_asset{asset_no_prec, {}};
CHECK_EQUAL( (temp -= temp), (extended_asset{asset_no_prec, {}}) )
temp = extended_asset{asset{1LL, sym_no_prec}, {}};
CHECK_EQUAL( (temp -= temp), (extended_asset{asset_no_prec, {}}) )
temp = extended_asset{a0, {}};
CHECK_EQUAL( (temp -= temp), (extended_asset{a0, {}}) )
temp = extended_asset{a1, {}};
CHECK_EQUAL( (temp -= temp), (extended_asset{a0, {}}) )

CHECK_ASSERT( "type mismatch", (
[&]() {
temp -= extended_asset{asset_no_prec, name{"jtnuoccaoisoe"}};
temp -= extended_asset{a0, name{"jtnuoccaoisoe"}};
})
)

// --------------------------------------------------------------------------
// extended_asset& operator*=( int64_t b )
CHECK_EQUAL( (extended_asset{ asset{ 0LL, sym_no_prec}, {}} *= 0LL ), (extended_asset{ asset{ 0LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (extended_asset{ asset{ 2LL, sym_no_prec}, {}} *= 1LL ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (extended_asset{ asset{ 2LL, sym_no_prec}, {}} *= -1LL ), (extended_asset{ asset{-2LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (extended_asset{ a0, {}} *= 0LL ), (extended_asset{ a0, {}}) );
CHECK_EQUAL( (extended_asset{ a2, {}} *= 1LL ), (extended_asset{ a2, {}}) );
CHECK_EQUAL( (extended_asset{ a2, {}} *= -1LL ), (extended_asset{ aneg2, {}}) );

CHECK_ASSERT( "multiplication underflow", (
[&]() {
Expand All @@ -511,9 +520,9 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// --------------------------------------------------------------------------
// friend extended_asset operator*( const extended_asset& a, int64_t b )
CHECK_EQUAL( (extended_asset{ asset{ 0LL, sym_no_prec}, {}} * 0LL ), (extended_asset{ asset{ 0LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (extended_asset{ asset{ 2LL, sym_no_prec}, {}} * 1LL ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (extended_asset{ asset{ 2LL, sym_no_prec}, {}} * -1LL ), (extended_asset{ asset{-2LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (extended_asset{ a0, {}} * 0LL ), (extended_asset{ a0, {}}) );
CHECK_EQUAL( (extended_asset{ a2, {}} * 1LL ), (extended_asset{ a2, {}}) );
CHECK_EQUAL( (extended_asset{ a2, {}} * -1LL ), (extended_asset{ aneg2, {}}) );

CHECK_ASSERT( "multiplication underflow", (
[&]() {
Expand All @@ -529,9 +538,9 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// --------------------------------------------------------------------------
// friend extended_asset operator*( int64_t a, const extended_asset& b )
CHECK_EQUAL( ( 0LL * extended_asset{ asset{ 0LL, sym_no_prec}, {}} ), (extended_asset{ asset{ 0LL, sym_no_prec}, {}}) );
CHECK_EQUAL( ( 1LL * extended_asset{ asset{ 2LL, sym_no_prec}, {}} ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) );
CHECK_EQUAL( (-1LL * extended_asset{ asset{ 2LL, sym_no_prec}, {}} ), (extended_asset{ asset{-2LL, sym_no_prec}, {}}) );
CHECK_EQUAL( ( 0LL * extended_asset{ a0, {}} ), (extended_asset{ a0, {}}) );
CHECK_EQUAL( ( 1LL * extended_asset{ a2, {}} ), (extended_asset{ a2, {}}) );
CHECK_EQUAL( (-1LL * extended_asset{ a2, {}} ), (extended_asset{ aneg2, {}}) );

CHECK_ASSERT( "multiplication underflow", (
[&]() {
Expand All @@ -547,42 +556,42 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// --------------------------------------------------------------------------
// friend int64_t operator/( const extended_asset& a, const extended_asset& b )
CHECK_EQUAL( (extended_asset{ asset{ 0LL, sym_no_prec}, {}} / extended_asset{ asset{ 1LL, sym_no_prec}, {}}), 0LL )
CHECK_EQUAL( (extended_asset{ asset{ 1LL, sym_no_prec}, {}} / extended_asset{ asset{ 1LL, sym_no_prec}, {}}), 1LL )
CHECK_EQUAL( (extended_asset{ asset{ 4LL, sym_no_prec}, {}} / extended_asset{ asset{ 2LL, sym_no_prec}, {}}), 2LL )
CHECK_EQUAL( (extended_asset{ asset{-4LL, sym_no_prec}, {}} / extended_asset{ asset{ 2LL, sym_no_prec}, {}}), -2LL )
CHECK_EQUAL( (extended_asset{ asset{-4LL, sym_no_prec}, {}} / extended_asset{ asset{-2LL, sym_no_prec}, {}}), 2LL )
CHECK_EQUAL( (extended_asset{ a0, {}} / extended_asset{ a1, {}}), 0LL )
CHECK_EQUAL( (extended_asset{ a1, {}} / extended_asset{ a1, {}}), 1LL )
CHECK_EQUAL( (extended_asset{ a4, {}} / extended_asset{ a2, {}}), 2LL )
CHECK_EQUAL( (extended_asset{ aneg4, {}} / extended_asset{ a2, {}}), -2LL )
CHECK_EQUAL( (extended_asset{ aneg4, {}} / extended_asset{ aneg2, {}}), 2LL )

// --------------------------------------------------------------------------
// friend extended_asset& operator/=( extended_asset& a, int64_t b )
CHECK_EQUAL( (extended_asset{ asset{ 0LL, sym_no_prec}, {}} /= 1LL ), (extended_asset{ asset{ 0LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{ 1LL, sym_no_prec}, {}} /= 1LL ), (extended_asset{ asset{ 1LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{ 4LL, sym_no_prec}, {}} /= 2LL ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{-4LL, sym_no_prec}, {}} /= 2LL ), (extended_asset{ asset{-2LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{-4LL, sym_no_prec}, {}} /= -2LL ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ a0, {}} /= 1LL ), (extended_asset{ a0, {}}) )
CHECK_EQUAL( (extended_asset{ a1, {}} /= 1LL ), (extended_asset{ a1, {}}) )
CHECK_EQUAL( (extended_asset{ a4, {}} /= 2LL ), (extended_asset{ a2, {}}) )
CHECK_EQUAL( (extended_asset{ aneg4, {}} /= 2LL ), (extended_asset{ aneg2, {}}) )
CHECK_EQUAL( (extended_asset{ aneg4, {}} /= -2LL ), (extended_asset{ a2, {}}) )

// --------------------------------------------------------------------------
// friend extended_asset operator/( const extended_asset& a, int64_t b )
CHECK_EQUAL( (extended_asset{ asset{ 0LL, sym_no_prec}, {}} / 1LL ), (extended_asset{ asset{ 0LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{ 1LL, sym_no_prec}, {}} / 1LL ), (extended_asset{ asset{ 1LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{ 4LL, sym_no_prec}, {}} / 2LL ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{-4LL, sym_no_prec}, {}} / 2LL ), (extended_asset{ asset{-2LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ asset{-4LL, sym_no_prec}, {}} / -2LL ), (extended_asset{ asset{ 2LL, sym_no_prec}, {}}) )
CHECK_EQUAL( (extended_asset{ a0, {}} / 1LL ), (extended_asset{ a0, {}}) )
CHECK_EQUAL( (extended_asset{ a1, {}} / 1LL ), (extended_asset{ a1, {}}) )
CHECK_EQUAL( (extended_asset{ a4, {}} / 2LL ), (extended_asset{ a2, {}}) )
CHECK_EQUAL( (extended_asset{ aneg4, {}} / 2LL ), (extended_asset{ aneg2, {}}) )
CHECK_EQUAL( (extended_asset{ aneg4, {}} / -2LL ), (extended_asset{ a2, {}}) )

// --------------------------------------------------------------------
// friend bool operator==(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset_no_prec, {}} == extended_asset{asset_no_prec, {}}), true )
CHECK_EQUAL( (extended_asset{asset{1LL, sym_no_prec}, {}} == extended_asset{asset{1LL, sym_no_prec}, {}}), true )
CHECK_EQUAL( (extended_asset{a0, {}} == extended_asset{a0, {}}), true )
CHECK_EQUAL( (extended_asset{a1, {}} == extended_asset{a1, {}}), true )

// --------------------------------------------------------------------
// friend bool operator!=(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset_no_prec, name{"eosioaccountj"}} != extended_asset{asset_no_prec, name{"jtnuoccaoisoe"}}), true )
CHECK_EQUAL( (extended_asset{asset{1LL, sym_no_prec}, {}} != extended_asset{asset{-1LL, sym_no_prec}, {}}), true )
CHECK_EQUAL( (extended_asset{asset{1LL, sym_no_prec}, {}} != extended_asset{asset{ 0LL, sym_no_prec}, name{"eosioaccountj"}}), true )
CHECK_EQUAL( (extended_asset{a0, name{"eosioaccountj"}} != extended_asset{a0, name{"jtnuoccaoisoe"}}), true )
CHECK_EQUAL( (extended_asset{a1, {}} != extended_asset{aneg1, {}}), true )
CHECK_EQUAL( (extended_asset{a1, {}} != extended_asset{a0, name{"eosioaccountj"}}), true )

// -------------------------------------------------------------------
// friend bool operator<(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset_no_prec, name{}} < extended_asset{asset{ 1LL, sym_no_prec}, {}}), true )
CHECK_EQUAL( (extended_asset{a0, name{}} < extended_asset{a1, {}}), true )
CHECK_ASSERT( "type mismatch", (
[&]() {
bool b{extended_asset{{}, name{}} < extended_asset{{}, name{"eosioaccountj"}}};
Expand All @@ -592,7 +601,7 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// -------------------------------------------------------------------
// friend bool operator>(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset{ 1LL, sym_no_prec}, {}} > extended_asset{asset_no_prec, name{}}), true )
CHECK_EQUAL( (extended_asset{a1, {}} > extended_asset{a0, name{}}), true )
CHECK_ASSERT( "type mismatch", (
[&]() {
bool b{extended_asset{{}, name{}} > extended_asset{{}, name{"eosioaccountj"}}};
Expand All @@ -602,7 +611,7 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// --------------------------------------------------------------------
// friend bool operator<=(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset_no_prec, name{}} <= extended_asset{asset{ 1LL, sym_no_prec}, {}}), true );
CHECK_EQUAL( (extended_asset{a0, name{}} <= extended_asset{a1, {}}), true );
CHECK_ASSERT( "type mismatch", (
[&]() {
bool b{extended_asset{{}, name{}} <= extended_asset{{}, name{"eosioaccountj"}}};
Expand All @@ -612,7 +621,7 @@ EOSIO_TEST_BEGIN(extended_asset_type_test)

// --------------------------------------------------------------------
// friend bool operator>=(const extended_asset&, const extended_asset&)
CHECK_EQUAL( (extended_asset{asset{ 1LL, sym_no_prec}, {}} >= extended_asset{asset_no_prec, name{}}), true );
CHECK_EQUAL( (extended_asset{a1, {}} >= extended_asset{a0, name{}}), true );
CHECK_ASSERT( "type mismatch", (
[&]() {
bool b{extended_asset{{}, name{}} >= extended_asset{{}, name{"eosioaccountj"}}};
Expand Down

0 comments on commit 84d75fe

Please sign in to comment.