Skip to content

Commit

Permalink
Cleanup views::as_rvalue tests (#3089)
Browse files Browse the repository at this point in the history
  • Loading branch information
JMazurkiewicz committed Sep 13, 2022
1 parent 6cd74fd commit 6e72b6a
Showing 1 changed file with 3 additions and 20 deletions.
23 changes: 3 additions & 20 deletions tests/std/tests/P2446R2_views_as_rvalue/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,6 @@ concept CanViewAsRvalue = requires(Rng&& r) {
views::as_rvalue(forward<Rng>(r));
};

template <ranges::input_range R1, ranges::input_range R2>
constexpr bool test_equal(R1&& r1, R2&& r2) { // TRANSITION, GH-3009
auto first1 = ranges::begin(r1);
auto last1 = ranges::end(r1);
auto first2 = ranges::begin(r2);
auto last2 = ranges::end(r2);
while (true) {
if (first1 == last1) {
return first2 == last2;
} else if (first2 == last2 || *first1 != *first2) {
return false;
}
++first1;
++first2;
}
}

template <ranges::input_range Rng, class Expected>
constexpr bool test_one(Rng&& rng, Expected&& expected) {
using ranges::as_rvalue_view, ranges::begin, ranges::end, ranges::iterator_t, ranges::sentinel_t, ranges::prev,
Expand Down Expand Up @@ -169,15 +152,15 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
// Validate deduction guide
same_as<R> auto r = as_rvalue_view{std::forward<Rng>(rng)};

// Validate as_const_view::size
// Validate as_rvalue_view::size
STATIC_ASSERT(CanMemberSize<R> == sized_range<V>);
if constexpr (CanMemberSize<R>) {
same_as<ranges::range_size_t<V>> auto s = r.size();
assert(_To_unsigned_like(s) == ranges::size(expected));
STATIC_ASSERT(noexcept(r.size()) == noexcept(ranges::size(as_const(rng))));
}

// Validate as_const_view::size (const)
// Validate as_rvalue_view::size (const)
STATIC_ASSERT(CanMemberSize<const R> == sized_range<const V>);
if constexpr (CanMemberSize<const R>) {
same_as<ranges::range_size_t<const V>> auto s = as_const(r).size();
Expand All @@ -203,7 +186,7 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
assert(static_cast<bool>(as_const(r)) == !is_empty);
}

assert(test_equal(r, expected)); // TRANSITION, GH-3009 (use ranges::equal)
assert(ranges::equal(r, expected));
if (!forward_range<V>) { // intentionally not if constexpr
return true;
}
Expand Down

0 comments on commit 6e72b6a

Please sign in to comment.