From 8999204cae6df8a0791f4896f5035fb23c38a90c Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Fri, 10 Jan 2025 04:53:08 +0200 Subject: [PATCH] Add array_iterator_test.cpp --- test/Jamfile.v2 | 1 + test/array_iterator_test.cpp | 108 +++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 test/array_iterator_test.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index fd065c3..80d8972 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -34,6 +34,7 @@ run array_init_test.cpp ; run array_copy_test.cpp ; run array_convert_test.cpp ; run array_data_test.cpp ; +run array_iterator_test.cpp ; # diff --git a/test/array_iterator_test.cpp b/test/array_iterator_test.cpp new file mode 100644 index 0000000..8b75a07 --- /dev/null +++ b/test/array_iterator_test.cpp @@ -0,0 +1,108 @@ +// Copyright 2025 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt) + +#include +#include +#include + +template void test() +{ + { + boost::array a = {{}}; + + T* p1 = a.data(); + + { + T* p2 = a.begin(); + T* p3 = a.end(); + + BOOST_TEST_EQ( p2, p1 ); + BOOST_TEST_EQ( p3, p1 + N ); + } + + { + T const* p2 = a.cbegin(); + T const* p3 = a.cend(); + + BOOST_TEST_EQ( p2, p1 ); + BOOST_TEST_EQ( p3, p1 + N ); + } + } + + { + boost::array const a = {{}}; + + T const* p1 = a.data(); + + { + T const* p2 = a.begin(); + T const* p3 = a.end(); + + BOOST_TEST_EQ( p2, p1 ); + BOOST_TEST_EQ( p3, p1 + N ); + } + + { + T const* p2 = a.cbegin(); + T const* p3 = a.cend(); + + BOOST_TEST_EQ( p2, p1 ); + BOOST_TEST_EQ( p3, p1 + N ); + } + } +} + +template void test2() +{ + { + boost::array a = {}; + + { + T* p2 = a.begin(); + T* p3 = a.end(); + + BOOST_TEST_EQ( p2, p3 ); + } + + { + T const* p2 = a.cbegin(); + T const* p3 = a.cend(); + + BOOST_TEST_EQ( p2, p3 ); + } + } + + { + boost::array const a = {}; + + { + T const* p2 = a.begin(); + T const* p3 = a.end(); + + BOOST_TEST_EQ( p2, p3 ); + } + + { + T const* p2 = a.cbegin(); + T const* p3 = a.cend(); + + BOOST_TEST_EQ( p2, p3 ); + } + } +} + +int main() +{ + // test(); + test(); + test(); + + // test(); + test(); + test(); + + test2(); + + return boost::report_errors(); +}