Some fixes for XMLElement

This commit is contained in:
Sergey Yershov 2015-08-13 11:27:17 +03:00 committed by Alex Zolotarev
parent 2066aa34b8
commit 0c4336a2a0
3 changed files with 27 additions and 4 deletions

View file

@ -30,7 +30,7 @@ UNIT_TEST(Source_To_Element_create_from_xml_test)
UNIT_TEST(Source_To_Element_create_from_o5m_test)
{
string src(begin(way_o5m_data), end(way_o5m_data));
string src(begin(relation_o5m_data), end(relation_o5m_data));
istringstream ss(src);
SourceReader reader(ss);
@ -39,7 +39,9 @@ UNIT_TEST(Source_To_Element_create_from_o5m_test)
{
elements.push_back(*e);
});
TEST_EQUAL(elements.size(), 10, (elements));
TEST_EQUAL(elements.size(), 11, (elements));
cout << DebugPrint(elements);
}
UNIT_TEST(Source_To_Element_check_equivalence)

View file

@ -62,10 +62,24 @@ string XMLElement::ToString(string const & shift) const
ss << "Nd ref: " << ref;
break;
case EntityType::Way:
ss << "Way: " << id << " subelements: " << childs.size();
ss << "Way: " << id << " nds: " << m_nds.size() << " subelements: " << childs.size();
if (!m_nds.empty())
{
string shift2 = shift;
shift2 += shift2.empty() ? "\n " : " ";
for ( auto const & e : m_nds )
ss << shift2 << e;
}
break;
case EntityType::Relation:
ss << "Relation: " << id << " subelements: " << childs.size();
ss << "Relation: " << id << " members: " << m_members.size() << " subelements: " << childs.size();
if (!m_members.empty())
{
string shift2 = shift;
shift2 += shift2.empty() ? "\n " : " ";
for ( auto const & e : m_members )
ss << shift2 << e.ref << " " << DebugPrint(e.type) << " " << e.role;
}
break;
case EntityType::Tag:
ss << "Tag: " << k << " = " << v;

View file

@ -40,6 +40,11 @@ struct XMLElement
uint64_t ref;
EntityType type;
string role;
bool operator == (Member const & e) const
{
return ref == e.ref && type == e.type && role == e.role;
}
};
@ -118,6 +123,8 @@ struct XMLElement
&& v == e.v
&& memberType == e.memberType
&& role == e.role
&& m_nds == e.m_nds
&& m_members == e.m_members
&& childs == e.childs
);
}