Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/GSL.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn Otto <git@martijnotto.nl>2019-11-15 16:19:41 +0300
committerMartijn Otto <git@martijnotto.nl>2020-01-08 23:02:02 +0300
commitfa8a8117a09a69e4cdfe4b86da0fe69d03080220 (patch)
tree5fdfa4f8b8a1206d89752acdf17d83d526d82e82 /tests/span_tests.cpp
parentb186b6cc680ffd6a4d18794674ee1eeadeb3af87 (diff)
Add tests for free-standing iterator and size functions
Diffstat (limited to 'tests/span_tests.cpp')
-rw-r--r--tests/span_tests.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/span_tests.cpp b/tests/span_tests.cpp
index edbd118..7607194 100644
--- a/tests/span_tests.cpp
+++ b/tests/span_tests.cpp
@@ -1084,6 +1084,45 @@ TEST(span_test, from_array_constructor)
EXPECT_TRUE(cit3 == s.cend());
}
+ TEST(span_test, iterator_free_functions)
+ {
+ int a[] = {1, 2, 3, 4};
+ span<int> s{a};
+
+ EXPECT_TRUE((std::is_same<decltype(s.begin()), decltype(begin(s))>::value));
+ EXPECT_TRUE((std::is_same<decltype(s.end()), decltype(end(s))>::value));
+
+ EXPECT_TRUE((std::is_same<decltype(s.cbegin()), decltype(cbegin(s))>::value));
+ EXPECT_TRUE((std::is_same<decltype(s.cend()), decltype(cend(s))>::value));
+
+ EXPECT_TRUE((std::is_same<decltype(s.rbegin()), decltype(rbegin(s))>::value));
+ EXPECT_TRUE((std::is_same<decltype(s.rend()), decltype(rend(s))>::value));
+
+ EXPECT_TRUE((std::is_same<decltype(s.crbegin()), decltype(crbegin(s))>::value));
+ EXPECT_TRUE((std::is_same<decltype(s.crend()), decltype(crend(s))>::value));
+
+ EXPECT_TRUE(s.begin() == begin(s));
+ EXPECT_TRUE(s.end() == end(s));
+
+ EXPECT_TRUE(s.cbegin() == cbegin(s));
+ EXPECT_TRUE(s.cend() == cend(s));
+
+ EXPECT_TRUE(s.rbegin() == rbegin(s));
+ EXPECT_TRUE(s.rend() == rend(s));
+
+ EXPECT_TRUE(s.crbegin() == crbegin(s));
+ EXPECT_TRUE(s.crend() == crend(s));
+ }
+
+ TEST(span_test, ssize_free_function)
+ {
+ int a[] = {1, 2, 3, 4};
+ span<int> s{a};
+
+ EXPECT_TRUE((std::is_same<decltype(s.size()), decltype(ssize(s))>::value));
+ EXPECT_TRUE(s.size() == ssize(s));
+ }
+
TEST(span_test, iterator_comparisons)
{
int a[] = {1, 2, 3, 4};