Refactor file writing in OSRM contract
This commit is contained in:
committed by
Patrick Niklaus
parent
9922c0f4f7
commit
97592e5bc3
@@ -0,0 +1,67 @@
|
||||
#include "util/vector_view.hpp"
|
||||
#include "util/typedefs.hpp"
|
||||
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
#include <boost/range/iterator_range.hpp>
|
||||
#include <boost/test/test_case_template.hpp>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <random>
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(vector_view_test)
|
||||
|
||||
using namespace osrm;
|
||||
using namespace osrm::util;
|
||||
|
||||
BOOST_AUTO_TEST_CASE(rw_short)
|
||||
{
|
||||
std::size_t num_elements = 1000;
|
||||
std::unique_ptr<char[]> data = std::make_unique<char[]>(sizeof(std::uint16_t) * num_elements);
|
||||
util::vector_view<std::uint16_t> view(reinterpret_cast<std::uint16_t *>(data.get()),
|
||||
num_elements);
|
||||
std::vector<std::uint16_t> reference;
|
||||
|
||||
std::mt19937 rng;
|
||||
rng.seed(1337);
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist(0, (1UL << 16));
|
||||
|
||||
for (std::size_t i = 0; i < num_elements; i++)
|
||||
{
|
||||
auto r = dist(rng);
|
||||
view[i] = r;
|
||||
reference.push_back(r);
|
||||
}
|
||||
|
||||
for (std::size_t i = 0; i < num_elements; i++)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(view[i], reference[i]);
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(rw_bool)
|
||||
{
|
||||
std::size_t num_elements = 1000;
|
||||
std::unique_ptr<char[]> data = std::make_unique<char[]>(num_elements / sizeof(std::uint32_t));
|
||||
util::vector_view<bool> view(reinterpret_cast<std::uint32_t *>(data.get()), num_elements);
|
||||
std::vector<bool> reference;
|
||||
|
||||
std::mt19937 rng;
|
||||
rng.seed(1337);
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist(0, 2);
|
||||
|
||||
for (std::size_t i = 0; i < num_elements; i++)
|
||||
{
|
||||
auto r = dist(rng);
|
||||
view[i] = r;
|
||||
reference.push_back(r);
|
||||
}
|
||||
|
||||
for (std::size_t i = 0; i < num_elements; i++)
|
||||
{
|
||||
BOOST_CHECK_EQUAL(view[i], reference[i]);
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
Reference in New Issue
Block a user