Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)

To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
This commit is contained in:
Konstantin Pastbin
2025-04-13 16:37:30 +07:00
commit e3e4a1985a
12931 changed files with 13195100 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
#include "testing/testing.hpp"
#include "coding/file_sort.hpp"
#include "coding/write_to_sink.hpp"
#include "coding/reader.hpp"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <random>
#include <vector>
using namespace std;
namespace
{
void TestFileSorter(vector<uint32_t> & data, char const * tmpFileName, size_t bufferSize)
{
vector<char> serial;
typedef MemWriter<vector<char> > MemWriterType;
MemWriterType writer(serial);
typedef WriterFunctor<MemWriterType> OutT;
OutT out(writer);
FileSorter<uint32_t, OutT> sorter(bufferSize, tmpFileName, out);
for (size_t i = 0; i < data.size(); ++i)
sorter.Add(data[i]);
sorter.SortAndFinish();
TEST_EQUAL(serial.size(), data.size() * sizeof(data[0]), ());
sort(data.begin(), data.end());
MemReader reader(&serial[0], serial.size());
TEST_EQUAL(reader.Size(), data.size() * sizeof(data[0]), ());
vector<uint32_t> result(data.size());
reader.Read(0, &result[0], reader.Size());
TEST_EQUAL(result, data, ());
}
}
UNIT_TEST(FileSorter_Smoke)
{
vector<uint32_t> data;
data.push_back(2);
data.push_back(3);
data.push_back(1);
TestFileSorter(data, "file_sorter_test_smoke.tmp", 10);
}
UNIT_TEST(FileSorter_Random)
{
mt19937 rng(0);
vector<uint32_t> data(1000);
for (size_t i = 0; i < data.size(); ++i)
data[i] = ((i + 1 % 100) ? rng() : data[i - 20]);
TestFileSorter(data, "file_sorter_test_random.tmp", data.size() / 10);
}