Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Yershov <yershov@corp.mail.ru>2015-08-24 13:46:05 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 03:03:14 +0300
commit7fcd6ec8c4259a010433d72fce5bb299d24b8381 (patch)
treec4f90dbe82c5cc8b439de1c2427c0fefccfb0ab4 /generator/generator_tests
parent8a05999c2ed155f6deb5bb1570e2c455145b7788 (diff)
Added possibility load all intermediate data in memory
Diffstat (limited to 'generator/generator_tests')
-rw-r--r--generator/generator_tests/intermediate_data_test.cpp135
1 files changed, 135 insertions, 0 deletions
diff --git a/generator/generator_tests/intermediate_data_test.cpp b/generator/generator_tests/intermediate_data_test.cpp
new file mode 100644
index 0000000000..41a597c270
--- /dev/null
+++ b/generator/generator_tests/intermediate_data_test.cpp
@@ -0,0 +1,135 @@
+//
+// intermediate_data_test.cpp
+// generator_tool
+//
+// Created by Sergey Yershov on 20.08.15.
+// Copyright (c) 2015 maps.me. All rights reserved.
+//
+
+#include "testing/testing.hpp"
+
+#include "generator/osm_decl.hpp"
+
+
+UNIT_TEST(Intermediate_Data_empty_way_element_save_load_test)
+{
+ WayElement e1(1 /* fake osm id */);
+
+ using TBuffer = vector<uint8_t>;
+ TBuffer buffer;
+ MemWriter<TBuffer> w(buffer);
+
+ e1.Write(w);
+
+ MemReader r(buffer.data(), buffer.size());
+
+ WayElement e2(1 /* fake osm id */);
+
+ e2.Read(r);
+
+ TEST_EQUAL(e2.nodes.size(), 0, ());
+}
+
+
+UNIT_TEST(Intermediate_Data_way_element_save_load_test)
+{
+ WayElement e1(1 /* fake osm id */);
+
+ e1.nodes.push_back(0);
+ e1.nodes.push_back(1);
+ e1.nodes.push_back(2);
+ e1.nodes.push_back(3);
+ e1.nodes.push_back(0xFFFFFFFF);
+ e1.nodes.push_back(0xFFFFFFFFFFFFFFFF);
+
+ using TBuffer = vector<uint8_t>;
+ TBuffer buffer;
+ MemWriter<TBuffer> w(buffer);
+
+ e1.Write(w);
+
+ MemReader r(buffer.data(), buffer.size());
+
+ WayElement e2(1 /* fake osm id */);
+
+ e2.Read(r);
+
+ TEST_EQUAL(e2.nodes.size(), 6, ());
+ TEST_EQUAL(e2.nodes[0], 0, ());
+ TEST_EQUAL(e2.nodes[1], 1, ());
+ TEST_EQUAL(e2.nodes[2], 2, ());
+ TEST_EQUAL(e2.nodes[3], 3, ());
+ TEST_EQUAL(e2.nodes[4], 0xFFFFFFFF, ());
+ TEST_EQUAL(e2.nodes[5], 0xFFFFFFFFFFFFFFFF, ());
+}
+
+UNIT_TEST(Intermediate_Data_relation_element_save_load_test)
+{
+ RelationElement e1;
+
+ e1.nodes.emplace_back(1, "inner");
+ e1.nodes.emplace_back(2, "outer");
+ e1.nodes.emplace_back(3, "unknown");
+ e1.nodes.emplace_back(4, "inner role");
+
+ e1.ways.emplace_back(1, "inner");
+ e1.ways.emplace_back(2, "outer");
+ e1.ways.emplace_back(3, "unknown");
+ e1.ways.emplace_back(4, "inner role");
+
+ e1.tags.emplace("key1","value1");
+ e1.tags.emplace("key2","value2");
+ e1.tags.emplace("key3","value3");
+ e1.tags.emplace("key4","value4");
+
+ using TBuffer = vector<uint8_t>;
+ TBuffer buffer;
+ MemWriter<TBuffer> w(buffer);
+
+ e1.Write(w);
+
+ MemReader r(buffer.data(), buffer.size());
+
+ RelationElement e2;
+
+ e2.nodes.emplace_back(30, "000unknown");
+ e2.nodes.emplace_back(40, "000inner role");
+ e2.ways.emplace_back(10, "000inner");
+ e2.ways.emplace_back(20, "000outer");
+ e2.tags.emplace("key1old","value1old");
+ e2.tags.emplace("key2old","value2old");
+
+ e2.Read(r);
+
+ TEST_EQUAL(e2.nodes.size(), 4, ());
+ TEST_EQUAL(e2.ways.size(), 4, ());
+ TEST_EQUAL(e2.tags.size(), 4, ());
+
+ TEST_EQUAL(e2.nodes[0].first, 1, ());
+ TEST_EQUAL(e2.nodes[1].first, 2, ());
+ TEST_EQUAL(e2.nodes[2].first, 3, ());
+ TEST_EQUAL(e2.nodes[3].first, 4, ());
+
+ TEST_EQUAL(e2.nodes[0].second, "inner", ());
+ TEST_EQUAL(e2.nodes[1].second, "outer", ());
+ TEST_EQUAL(e2.nodes[2].second, "unknown", ());
+ TEST_EQUAL(e2.nodes[3].second, "inner role", ());
+
+ TEST_EQUAL(e2.ways[0].first, 1, ());
+ TEST_EQUAL(e2.ways[1].first, 2, ());
+ TEST_EQUAL(e2.ways[2].first, 3, ());
+ TEST_EQUAL(e2.ways[3].first, 4, ());
+
+ TEST_EQUAL(e2.ways[0].second, "inner", ());
+ TEST_EQUAL(e2.ways[1].second, "outer", ());
+ TEST_EQUAL(e2.ways[2].second, "unknown", ());
+ TEST_EQUAL(e2.ways[3].second, "inner role", ());
+
+ TEST_EQUAL(e2.tags["key1"], "value1", ());
+ TEST_EQUAL(e2.tags["key2"], "value2", ());
+ TEST_EQUAL(e2.tags["key3"], "value3", ());
+ TEST_EQUAL(e2.tags["key4"], "value4", ());
+
+ TEST_NOT_EQUAL(e2.tags["key1old"], "value1old", ());
+ TEST_NOT_EQUAL(e2.tags["key2old"], "value2old", ());
+}