From 8718c2324b68751cd3e02980e586c4324539919c Mon Sep 17 00:00:00 2001 From: Edward Nolan Date: Wed, 13 Nov 2024 13:08:15 -0500 Subject: [PATCH] Add static assertions for iterator concept satisfaction of code unit view iterator --- src/utf_view/tests/code_unit_view.t.cpp | 52 +++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/utf_view/tests/code_unit_view.t.cpp b/src/utf_view/tests/code_unit_view.t.cpp index f99acb0..4f1a7f0 100644 --- a/src/utf_view/tests/code_unit_view.t.cpp +++ b/src/utf_view/tests/code_unit_view.t.cpp @@ -10,9 +10,61 @@ #include #include #include +#include namespace utf_view::tests { +static_assert( + std::input_iterator< + std::ranges::iterator_t< + as_char8_t_view< + std::ranges::subrange, std::default_sentinel_t>>>>); + +static_assert( + std::input_iterator< + std::ranges::iterator_t< + as_char8_t_view< + std::ranges::subrange, + std::default_sentinel_t>>>>); + +static_assert( + std::input_iterator< + std::ranges::iterator_t< + as_char8_t_view< + std::ranges::subrange, + std::default_sentinel_t>>>>); +static_assert( + !std::forward_iterator< + std::ranges::iterator_t< + as_char8_t_view< + std::ranges::subrange, + std::default_sentinel_t>>>>); + +static_assert( + std::forward_iterator< + std::ranges::iterator_t< + as_char8_t_view< + std::ranges::subrange, + std::default_sentinel_t>>>>); +static_assert( + std::forward_iterator< + std::ranges::sentinel_t< + as_char8_t_view< + std::ranges::subrange, + test_forward_iterator>>>>); +static_assert( + std::bidirectional_iterator< + std::ranges::iterator_t< + as_char8_t_view< + std::ranges::subrange, + std::default_sentinel_t>>>>); +static_assert( + std::bidirectional_iterator< + std::ranges::sentinel_t< + as_char8_t_view< + std::ranges::subrange, + test_bidi_iterator>>>>); + // TODO: Comprehensive testing for `code_unit_view` constexpr bool smoke_test() {