From dca9ae1a60d25d086e3308d53d4ca3361a59a315 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sun, 12 Jan 2025 03:01:00 +0200 Subject: [PATCH] Add array_lt_test.cpp --- test/Jamfile.v2 | 1 + test/array_lt_test.cpp | 85 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 test/array_lt_test.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 8de446d..ae231d4 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -44,6 +44,7 @@ run array_assign_test.cpp ; run array_swap_test.cpp ; run array_swap_test2.cpp ; run array_eq_test.cpp ; +run array_lt_test.cpp ; # diff --git a/test/array_lt_test.cpp b/test/array_lt_test.cpp new file mode 100644 index 0000000..d2ec7f6 --- /dev/null +++ b/test/array_lt_test.cpp @@ -0,0 +1,85 @@ +// 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 const a1 = {}; + boost::array const a2 = {}; + + BOOST_TEST_NOT( a1 < a2 ); + BOOST_TEST_NOT( a1 > a2 ); + BOOST_TEST( a1 <= a2 ); + BOOST_TEST( a1 >= a2 ); + } + + { + boost::array a1; + boost::array a2; + + a1.fill( 1 ); + a2.fill( 1 ); + + BOOST_TEST_NOT( a1 < a2 ); + BOOST_TEST_NOT( a1 > a2 ); + BOOST_TEST( a1 <= a2 ); + BOOST_TEST( a1 >= a2 ); + } + + for( std::size_t i = 0; i < N; ++i ) + { + boost::array a1; + boost::array a2; + + a1.fill( 1 ); + a2.fill( 1 ); + + a1[ i ] = 0; + + BOOST_TEST( a1 < a2 ); + BOOST_TEST( a1 <= a2 ); + BOOST_TEST_NOT( a1 > a2 ); + BOOST_TEST_NOT( a1 >= a2 ); + + { + boost::array const a3 = a1; + boost::array const a4 = a2; + + BOOST_TEST( a3 < a4 ); + BOOST_TEST( a3 <= a4 ); + BOOST_TEST_NOT( a3 > a4 ); + BOOST_TEST_NOT( a3 >= a4 ); + } + + a1[ i ] = 2; + + BOOST_TEST( a1 > a2 ); + BOOST_TEST( a1 >= a2 ); + BOOST_TEST_NOT( a1 < a2 ); + BOOST_TEST_NOT( a1 <= a2 ); + + { + boost::array const a3 = a1; + boost::array const a4 = a2; + + BOOST_TEST( a3 > a4 ); + BOOST_TEST( a3 >= a4 ); + BOOST_TEST_NOT( a3 < a4 ); + BOOST_TEST_NOT( a3 <= a4 ); + } + } +} + +int main() +{ + test(); + test(); + test(); + + return boost::report_errors(); +}