Code review fixes.

This commit is contained in:
Alex Zolotarev 2015-12-01 11:38:14 +03:00
parent ce34db1b77
commit d20898af55
3 changed files with 44 additions and 29 deletions

View file

@ -1,11 +1,14 @@
#include "testing/testing.hpp"
#include "base/logging.hpp"
#include "generator/osm2meta.hpp"
#include "indexer/classificator_loader.hpp"
#include "generator/osm2meta.hpp"
#include "coding/writer.hpp"
#include "coding/reader.hpp"
#include "base/logging.hpp"
#include "std/target_os.hpp"
using feature::Metadata;
@ -16,7 +19,7 @@ UNIT_TEST(Metadata_ValidateAndFormat_stars)
MetadataTagProcessor p(params);
Metadata & md = params.GetMetadata();
// ignore incorrect values
// Ignore incorrect values.
p("stars", "0");
TEST(md.Empty(), ());
p("stars", "-1");
@ -32,7 +35,7 @@ UNIT_TEST(Metadata_ValidateAndFormat_stars)
p("stars", "100");
TEST(md.Empty(), ());
// check correct values
// Check correct values.
p("stars", "1");
TEST_EQUAL(md.Get(Metadata::FMD_STARS), "1", ())
md.Drop(Metadata::FMD_STARS);
@ -61,7 +64,7 @@ UNIT_TEST(Metadata_ValidateAndFormat_stars)
TEST_EQUAL(md.Get(Metadata::FMD_STARS), "7", ())
md.Drop(Metadata::FMD_STARS);
// check almost correct values
// Check almost correct values.
p("stars", "4+");
TEST_EQUAL(md.Get(Metadata::FMD_STARS), "4", ())
md.Drop(Metadata::FMD_STARS);
@ -83,7 +86,7 @@ UNIT_TEST(Metadata_ValidateAndFormat_operator)
MetadataTagProcessor p(params);
Metadata & md = params.GetMetadata();
// ignore tag 'operator' if feature have inappropriate type
// Ignore tag 'operator' if feature have inappropriate type.
p("operator", "Some");
TEST(md.Empty(), ());
@ -114,7 +117,7 @@ UNIT_TEST(Metadata_ValidateAndFormat_ele)
MetadataTagProcessor p(params);
Metadata & md = params.GetMetadata();
// ignore tag 'operator' if feature have inappropriate type
// Ignore tag 'operator' if feature have inappropriate type.
p("ele", "123");
TEST(md.Empty(), ());
@ -136,12 +139,6 @@ UNIT_TEST(Metadata_ValidateAndFormat_ele)
md.Drop(Metadata::FMD_ELE);
}
#ifdef OMIM_OS_MOBILE
#define WIKIHOST "m.wikipedia.org"
#else
#define WIKIHOST "wikipedia.org"
#endif
UNIT_TEST(Metadata_ValidateAndFormat_wikipedia)
{
char const * kWikiKey = "wikipedia";
@ -150,6 +147,12 @@ UNIT_TEST(Metadata_ValidateAndFormat_wikipedia)
MetadataTagProcessor p(params);
Metadata & md = params.GetMetadata();
#ifdef OMIM_OS_MOBILE
#define WIKIHOST "m.wikipedia.org"
#else
#define WIKIHOST "wikipedia.org"
#endif
p(kWikiKey, "en:Bad %20Data");
TEST_EQUAL(md.Get(Metadata::FMD_WIKIPEDIA), "en:Bad %20Data", ());
TEST_EQUAL(md.GetWikiURL(), "https://en." WIKIHOST "/wiki/Bad_%2520Data", ());
@ -196,4 +199,6 @@ UNIT_TEST(Metadata_ValidateAndFormat_wikipedia)
p(kWikiKey, "http://ru.google.com/wiki/wutlol");
TEST(md.Empty(), ("Not a wikipedia site."));
#undef WIKIHOST
}

View file

@ -6,12 +6,15 @@
namespace feature
{
static char constexpr const * kBaseWikiUrl =
namespace
{
char constexpr const * kBaseWikiUrl =
#ifdef OMIM_OS_MOBILE
".m.wikipedia.org/wiki/";
#else
".wikipedia.org/wiki/";
#endif
} // namespace
string Metadata::GetWikiURL() const
{

View file

@ -10,6 +10,16 @@
using feature::Metadata;
namespace
{
map<Metadata::EType, string> const kKeyValues =
{
{Metadata::FMD_ELE, "12345"},
{Metadata::FMD_CUISINE, "greek;mediterranean"},
{Metadata::FMD_EMAIL, "cool@email.at"}
};
} // namespace
UNIT_TEST(Feature_Metadata_GetSet)
{
Metadata m;
@ -29,50 +39,46 @@ UNIT_TEST(Feature_Metadata_GetSet)
TEST(m.Empty(), ());
}
static map<Metadata::EType, string> const kPairs = { {Metadata::FMD_ELE, "12345"},
{Metadata::FMD_CUISINE, "greek;mediterranean"},
{Metadata::FMD_EMAIL, "cool@email.at"} };
UNIT_TEST(Feature_Metadata_PresentTypes)
{
Metadata m;
for (auto const & value : kPairs)
for (auto const & value : kKeyValues)
m.Set(value.first, value.second);
TEST_EQUAL(m.Size(), kPairs.size(), ());
TEST_EQUAL(m.Size(), kKeyValues.size(), ());
auto const types = m.GetPresentTypes();
TEST_EQUAL(types.size(), m.Size(), ());
for (auto const & type : types)
TEST_EQUAL(m.Get(type), kPairs.find(type)->second, ());
TEST_EQUAL(m.Get(type), kKeyValues.find(type)->second, ());
}
UNIT_TEST(Feature_Serialization)
{
Metadata original;
for (auto const & value : kPairs)
for (auto const & value : kKeyValues)
original.Set(value.first, value.second);
TEST_EQUAL(original.Size(), kPairs.size(), ());
TEST_EQUAL(original.Size(), kKeyValues.size(), ());
{
Metadata serialized;
vector<char> buffer;
MemWriter<vector<char> > writer(buffer);
MemWriter<decltype(buffer)> writer(buffer);
original.Serialize(writer);
MemReader reader(buffer.data(), buffer.size());
ReaderSource<MemReader> src(reader);
serialized.Deserialize(src);
for (auto const & value : kPairs)
for (auto const & value : kKeyValues)
TEST_EQUAL(serialized.Get(value.first), value.second, ());
TEST_EQUAL(serialized.Get(Metadata::FMD_OPERATOR), "", ());
TEST_EQUAL(serialized.Size(), kPairs.size(), ());
TEST_EQUAL(serialized.Size(), kKeyValues.size(), ());
}
{
Metadata serialized;
vector<char> buffer;
MemWriter<vector<char> > writer(buffer);
MemWriter<decltype(buffer)> writer(buffer);
// Here is the difference.
original.SerializeToMWM(writer);
@ -81,10 +87,11 @@ UNIT_TEST(Feature_Serialization)
// Here is another difference.
serialized.DeserializeFromMWM(src);
for (auto const & value : kPairs)
for (auto const & value : kKeyValues)
TEST_EQUAL(serialized.Get(value.first), value.second, ());
TEST_EQUAL(serialized.Get(Metadata::FMD_OPERATOR), "", ());
TEST_EQUAL(serialized.Size(), kPairs.size(), ());
TEST_EQUAL(serialized.Size(), kKeyValues.size(), ());
}
}