|
| 1 | +From bb4305d06083259b6efb5383331189781362bf82 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Enrico Seiler < [email protected]> |
| 3 | +Date: Sat, 10 Jun 2023 11:23:53 +0200 |
| 4 | +Subject: [PATCH 6/6] [API][FIX] views::chunk preserves common_range |
| 5 | + |
| 6 | +--- |
| 7 | + test/unit/utility/views/chunk_test.cpp | 14 +++----------- |
| 8 | + 1 file changed, 3 insertions(+), 11 deletions(-) |
| 9 | + |
| 10 | +diff --git a/test/unit/utility/views/chunk_test.cpp b/test/unit/utility/views/chunk_test.cpp |
| 11 | +index 9b8c12baa..3bb2d8b89 100644 |
| 12 | +--- a/test/unit/utility/views/chunk_test.cpp |
| 13 | ++++ b/test/unit/utility/views/chunk_test.cpp |
| 14 | +@@ -61,19 +61,19 @@ TYPED_TEST_SUITE(chunk_view_test, underlying_range_types, ); |
| 15 | + |
| 16 | + TYPED_TEST(chunk_view_test, concepts) |
| 17 | + { |
| 18 | +- // chunk view preserves input / forward / bidirectional / random_access / sized. |
| 19 | ++ // chunk view preserves input / forward / bidirectional / random_access / sized / common. |
| 20 | + EXPECT_EQ((std::ranges::range<TypeParam>), (std::ranges::range<decltype(this->v)>)); |
| 21 | + EXPECT_EQ((std::ranges::input_range<TypeParam>), (std::ranges::input_range<decltype(this->v)>)); |
| 22 | + EXPECT_EQ((std::ranges::forward_range<TypeParam>), (std::ranges::forward_range<decltype(this->v)>)); |
| 23 | + EXPECT_EQ((std::ranges::bidirectional_range<TypeParam>), (std::ranges::bidirectional_range<decltype(this->v)>)); |
| 24 | + EXPECT_EQ((std::ranges::random_access_range<TypeParam>), (std::ranges::random_access_range<decltype(this->v)>)); |
| 25 | + EXPECT_EQ((std::ranges::sized_range<TypeParam>), (std::ranges::sized_range<decltype(this->v)>)); |
| 26 | ++ EXPECT_EQ((std::ranges::common_range<TypeParam>), (std::ranges::common_range<decltype(this->v)>)); |
| 27 | + |
| 28 | + // it always ensures view |
| 29 | + EXPECT_TRUE((std::ranges::view<decltype(this->v)>)); |
| 30 | + |
| 31 | +- // it loses contiguous range, common_range and output range |
| 32 | +- EXPECT_FALSE((std::ranges::common_range<decltype(this->v)>)); |
| 33 | ++ // it loses contiguous range and output range |
| 34 | + EXPECT_FALSE((std::ranges::contiguous_range<decltype(this->v)>)); |
| 35 | + EXPECT_FALSE((std::ranges::output_range<decltype(this->v), std::ranges::range_value_t<TypeParam> &>)); |
| 36 | + } |
| 37 | +@@ -184,11 +184,3 @@ TYPED_TEST(chunk_view_test, use_on_temporaries) |
| 38 | + EXPECT_EQ(i, 4u); |
| 39 | + } |
| 40 | + } |
| 41 | +- |
| 42 | +-TYPED_TEST(chunk_view_test, big_chunk) |
| 43 | +-{ |
| 44 | +- // Check that a very big number (1ULL<<42) can be stored as chunk_size inside the chunk_view. |
| 45 | +- // error: conversion from ‘long long unsigned int’ to ‘uint16_t’ {aka ‘short unsigned int’} changes value |
| 46 | +- // from ‘4398046511104’ to ‘0’ [-Werror=overflow] |
| 47 | +- [[maybe_unused]] auto v = this->text | seqan3::views::chunk(1ULL << 42); |
| 48 | +-} |
| 49 | +-- |
| 50 | +2.40.1 |
| 51 | + |
0 commit comments