Use std::ranges::subrange instead of boost::iterator_range
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include "util/integer_range.hpp"
|
||||
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <ranges>
|
||||
|
||||
namespace osrm::engine
|
||||
{
|
||||
@@ -71,20 +72,17 @@ struct ExternalCellStorage
|
||||
{
|
||||
auto GetOutWeight(NodeID /*node*/) const
|
||||
{
|
||||
return boost::make_iterator_range((EdgeWeight *)0, (EdgeWeight *)0);
|
||||
return std::ranges::subrange((EdgeWeight *)0, (EdgeWeight *)0);
|
||||
}
|
||||
|
||||
auto GetInWeight(NodeID /*node*/) const
|
||||
{
|
||||
return boost::make_iterator_range((EdgeWeight *)0, (EdgeWeight *)0);
|
||||
return std::ranges::subrange((EdgeWeight *)0, (EdgeWeight *)0);
|
||||
}
|
||||
|
||||
auto GetSourceNodes() const { return boost::make_iterator_range((NodeID *)0, (NodeID *)0); }
|
||||
auto GetSourceNodes() const { return std::ranges::subrange((NodeID *)0, (NodeID *)0); }
|
||||
|
||||
auto GetDestinationNodes() const
|
||||
{
|
||||
return boost::make_iterator_range((NodeID *)0, (NodeID *)0);
|
||||
}
|
||||
auto GetDestinationNodes() const { return std::ranges::subrange((NodeID *)0, (NodeID *)0); }
|
||||
};
|
||||
|
||||
using Cell = CellImpl;
|
||||
|
||||
@@ -54,7 +54,7 @@ class MockBaseDataFacade : public engine::datafacade::BaseDataFacade
|
||||
{
|
||||
static NodeID data[] = {0, 1, 2, 3};
|
||||
static extractor::SegmentDataView::SegmentNodeVector nodes(data, 4);
|
||||
return boost::make_iterator_range(nodes.cbegin(), nodes.cend());
|
||||
return std::ranges::subrange(nodes.cbegin(), nodes.cend());
|
||||
}
|
||||
NodeReverseRange GetUncompressedReverseGeometry(const EdgeID id) const override
|
||||
{
|
||||
|
||||
@@ -3,14 +3,11 @@
|
||||
|
||||
#include "common/range_tools.hpp"
|
||||
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
#include <boost/range/any_range.hpp>
|
||||
#include <boost/range/iterator_range.hpp>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <numeric>
|
||||
#include <random>
|
||||
#include <ranges>
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(packed_vector_test)
|
||||
|
||||
@@ -84,22 +81,22 @@ BOOST_AUTO_TEST_CASE(packed_vector_iterator_test)
|
||||
}
|
||||
BOOST_CHECK_EQUAL(vec_idx, packed_vec.size());
|
||||
|
||||
auto range = boost::make_iterator_range(packed_vec.cbegin(), packed_vec.cend());
|
||||
auto range = std::ranges::subrange(packed_vec.cbegin(), packed_vec.cend());
|
||||
BOOST_CHECK_EQUAL(range.size(), packed_vec.size());
|
||||
for (auto idx : util::irange<std::size_t>(0, packed_vec.size()))
|
||||
{
|
||||
BOOST_CHECK_EQUAL(packed_vec[idx], range[idx]);
|
||||
}
|
||||
|
||||
auto reverse_range = boost::adaptors::reverse(
|
||||
boost::make_iterator_range(packed_vec.cbegin(), packed_vec.cend()));
|
||||
auto reverse_range =
|
||||
std::ranges::subrange(packed_vec.cbegin(), packed_vec.cend()) | std::views::reverse;
|
||||
BOOST_CHECK_EQUAL(reverse_range.size(), packed_vec.size());
|
||||
for (auto idx : util::irange<std::size_t>(0, packed_vec.size()))
|
||||
{
|
||||
BOOST_CHECK_EQUAL(packed_vec[packed_vec.size() - 1 - idx], reverse_range[idx]);
|
||||
}
|
||||
|
||||
auto mut_range = boost::make_iterator_range(packed_vec.begin(), packed_vec.end());
|
||||
auto mut_range = std::ranges::subrange(packed_vec.begin(), packed_vec.end());
|
||||
BOOST_CHECK_EQUAL(range.size(), packed_vec.size());
|
||||
for (auto idx : util::irange<std::size_t>(0, packed_vec.size()))
|
||||
{
|
||||
@@ -107,7 +104,7 @@ BOOST_AUTO_TEST_CASE(packed_vector_iterator_test)
|
||||
}
|
||||
|
||||
auto mut_reverse_range =
|
||||
boost::adaptors::reverse(boost::make_iterator_range(packed_vec.begin(), packed_vec.end()));
|
||||
std::ranges::subrange(packed_vec.begin(), packed_vec.end()) | std::views::reverse;
|
||||
BOOST_CHECK_EQUAL(reverse_range.size(), packed_vec.size());
|
||||
for (auto idx : util::irange<std::size_t>(0, packed_vec.size()))
|
||||
{
|
||||
@@ -205,73 +202,4 @@ BOOST_AUTO_TEST_CASE(packed_vector_33bit_continious)
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(packed_weights_container_with_type_erasure)
|
||||
{
|
||||
using Vector = PackedVector<SegmentWeight, SEGMENT_WEIGHT_BITS>;
|
||||
using WeightsAnyRange = boost::any_range<SegmentWeight,
|
||||
boost::random_access_traversal_tag,
|
||||
const typename Vector::internal_reference,
|
||||
std::ptrdiff_t>;
|
||||
|
||||
PackedVector<SegmentWeight, SEGMENT_WEIGHT_BITS> vector(7);
|
||||
|
||||
std::iota(vector.begin(), vector.end(), SegmentWeight{0});
|
||||
|
||||
auto forward = boost::make_iterator_range(vector.begin() + 1, vector.begin() + 6);
|
||||
auto forward_any = WeightsAnyRange(forward.begin(), forward.end());
|
||||
|
||||
CHECK_EQUAL_RANGE(forward,
|
||||
SegmentWeight{1},
|
||||
SegmentWeight{2},
|
||||
SegmentWeight{3},
|
||||
SegmentWeight{4},
|
||||
SegmentWeight{5});
|
||||
CHECK_EQUAL_RANGE(forward_any,
|
||||
SegmentWeight{1},
|
||||
SegmentWeight{2},
|
||||
SegmentWeight{3},
|
||||
SegmentWeight{4},
|
||||
SegmentWeight{5});
|
||||
|
||||
auto reverse = boost::adaptors::reverse(forward);
|
||||
auto reverse_any = WeightsAnyRange(reverse);
|
||||
CHECK_EQUAL_RANGE(reverse,
|
||||
SegmentWeight{5},
|
||||
SegmentWeight{4},
|
||||
SegmentWeight{3},
|
||||
SegmentWeight{2},
|
||||
SegmentWeight{1});
|
||||
CHECK_EQUAL_RANGE(reverse_any,
|
||||
SegmentWeight{5},
|
||||
SegmentWeight{4},
|
||||
SegmentWeight{3},
|
||||
SegmentWeight{2},
|
||||
SegmentWeight{1});
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(packed_weights_view_with_type_erasure)
|
||||
{
|
||||
using View = PackedVectorView<SegmentWeight, SEGMENT_WEIGHT_BITS>;
|
||||
using PackedDataWord = std::uint64_t; // PackedVectorView<>::WordT
|
||||
using WeightsAnyRange = boost::any_range<SegmentWeight,
|
||||
boost::random_access_traversal_tag,
|
||||
const typename View::internal_reference,
|
||||
std::ptrdiff_t>;
|
||||
|
||||
PackedDataWord data[] = {0x200000400000, 0xc, 0};
|
||||
View view(vector_view<PackedDataWord>(data, 3), 7);
|
||||
|
||||
auto forward = boost::make_iterator_range(view.begin() + 1, view.begin() + 4);
|
||||
auto forward_any = WeightsAnyRange(forward.begin(), forward.end());
|
||||
|
||||
CHECK_EQUAL_RANGE(forward, SegmentWeight{1}, SegmentWeight{2}, SegmentWeight{3});
|
||||
CHECK_EQUAL_RANGE(forward_any, SegmentWeight{1}, SegmentWeight{2}, SegmentWeight{3});
|
||||
|
||||
auto reverse = boost::adaptors::reverse(forward);
|
||||
auto reverse_any = WeightsAnyRange(reverse);
|
||||
|
||||
CHECK_EQUAL_RANGE(reverse, SegmentWeight{3}, SegmentWeight{2}, SegmentWeight{1});
|
||||
CHECK_EQUAL_RANGE(reverse_any, SegmentWeight{3}, SegmentWeight{2}, SegmentWeight{1});
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#include "util/vector_view.hpp"
|
||||
#include "util/typedefs.hpp"
|
||||
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
#include <boost/range/iterator_range.hpp>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
Reference in New Issue
Block a user