Skip to content
Snippets Groups Projects
Commit e721fe6d authored by Joan Solà Ortega's avatar Joan Solà Ortega
Browse files

Add structure comparator structcmp()

parent 90230197
No related branches found
No related tags found
1 merge request!389WIP: Resolve "VectorComposite::getStructure() sorted string"
Pipeline #8614 passed
......@@ -25,6 +25,9 @@ typedef std::string StateStructure;
typedef std::unordered_map < char, StateBlockPtr > StateBlockMap;
typedef StateBlockMap::const_iterator StateBlockMapCIter;
bool structcmp(const StateStructure& s1, const StateStructure& s2);
class VectorComposite : public std::unordered_map < char, Eigen::VectorXd >
{
public:
......
......@@ -6,6 +6,22 @@
namespace wolf{
////// STATE STRUCTURE //////////
bool structcmp(const StateStructure& s1, const StateStructure& s2)
{
if (s1.size() != s2.size()) return false;
std::set<char> s1_chars, s2_chars;
for (const auto &c : s1)
s1_chars.emplace(c);
for (const auto &c : s2)
s2_chars.emplace(c);
return s1_chars == s2_chars;
}
////// VECTOR COMPOSITE //////////
VectorComposite::VectorComposite(const StateStructure& _structure, const std::list<int>& _sizes)
......
......@@ -13,6 +13,19 @@
using namespace wolf;
using namespace std;
TEST(StateStructure, operator_equal)
{
StateStructure POV("POV"), PVO("PVO"), PO("PO"), POVW("POVW");
ASSERT_TRUE ( structcmp(POV , PVO ) );
ASSERT_FALSE( structcmp(POV , PO ) );
ASSERT_FALSE( structcmp(PO , POV ) );
ASSERT_FALSE( structcmp(PO , POVW) );
ASSERT_FALSE( structcmp(POVW , PO ) );
ASSERT_TRUE ( structcmp(POVW , "PVOW" ) );
ASSERT_TRUE ( structcmp(POVW , "WPOV" ) );
}
class StateBlockCompositeInit : public testing::Test
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment