Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

Commit

Permalink
Merge pull request #8540 from EOSIO/feature/extended_symbol_compariso…
Browse files Browse the repository at this point in the history
…n_operators

Added comparison operators for extended_symbol type
  • Loading branch information
victorj8 authored Jan 31, 2020
2 parents 8a0ac57 + 2ce9d49 commit 1340699
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
19 changes: 19 additions & 0 deletions libraries/chain/include/eosio/chain/symbol.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,25 @@ namespace eosio {
return lhs.value() > rhs.value();
}

inline bool operator== (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) == std::tie(rhs.sym, rhs.contract);
}

inline bool operator!= (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) != std::tie(rhs.sym, rhs.contract);
}

inline bool operator< (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) < std::tie(rhs.sym, rhs.contract);
}

inline bool operator> (const extended_symbol& lhs, const extended_symbol& rhs)
{
return std::tie(lhs.sym, lhs.contract) > std::tie(rhs.sym, rhs.contract);
}
} // namespace chain
} // namespace eosio

Expand Down
35 changes: 35 additions & 0 deletions unittests/api_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2236,6 +2236,41 @@ BOOST_FIXTURE_TEST_CASE(account_creation_time_tests, TESTER) { try {
BOOST_REQUIRE_EQUAL( validate(), true );
} FC_LOG_AND_RETHROW() }

/*************************************************************************************
* extended_symbol_api_tests test cases
*************************************************************************************/
BOOST_FIXTURE_TEST_CASE(extended_symbol_api_tests, TESTER) { try {
name n0{"1"};
name n1{"5"};
name n2{"a"};
name n3{"z"};
name n4{"111111111111j"};
name n5{"555555555555j"};
name n6{"zzzzzzzzzzzzj"};

symbol s0{4, ""};
symbol s1{5, "Z"};
symbol s2{10, "AAAAA"};
symbol s3{10, "ZZZZZ"};

// Test comparison operators

BOOST_REQUIRE( (extended_symbol{s0, n0} == extended_symbol{s0, n0}) );
BOOST_REQUIRE( (extended_symbol{s1, n3} == extended_symbol{s1, n3}) );
BOOST_REQUIRE( (extended_symbol{s2, n4} == extended_symbol{s2, n4}) );
BOOST_REQUIRE( (extended_symbol{s3, n6} == extended_symbol{s3, n6}) );

BOOST_REQUIRE( (extended_symbol{s0, n0} != extended_symbol{s1, n0}) );
BOOST_REQUIRE( (extended_symbol{s0, n0} != extended_symbol{s0, n1}) );
BOOST_REQUIRE( (extended_symbol{s1, n1} != extended_symbol{s2, n2}) );

BOOST_REQUIRE( (extended_symbol{s0, n0} < extended_symbol{s1, n0}) );
BOOST_REQUIRE( (extended_symbol{s0, n0} < extended_symbol{s0, n1}) );
BOOST_REQUIRE( (extended_symbol{s0, n5} < extended_symbol{s0, n3}) );
BOOST_REQUIRE( (extended_symbol{s2, n0} < extended_symbol{s3, n0}) );

} FC_LOG_AND_RETHROW() }

/*************************************************************************************
* eosio_assert_code_tests test cases
*************************************************************************************/
Expand Down

0 comments on commit 1340699

Please sign in to comment.