// Copyright Catch2 Authors // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.txt or copy at // https://www.boost.org/LICENSE_1_0.txt) // SPDX-License-Identifier: BSL-1.0 #include #include #include #define ADD_TRAIT_TEST_CASE( op ) \ TEST_CASE( "is_" #op "_comparable", \ "[traits][is_comparable][approvals]" ) { \ using Catch::Detail::is_##op##_0_comparable; \ using Catch::Detail::is_##op##_comparable; \ \ STATIC_REQUIRE( is_##op##_comparable::value ); \ STATIC_REQUIRE( \ is_##op##_comparable::value ); \ STATIC_REQUIRE( !is_##op##_comparable::value ); \ STATIC_REQUIRE( \ !is_##op##_comparable::value ); \ STATIC_REQUIRE( \ !is_##op##_comparable::value ); \ \ STATIC_REQUIRE( is_##op##_0_comparable::value ); \ STATIC_REQUIRE( \ is_##op##_0_comparable::value ); \ STATIC_REQUIRE( !is_##op##_0_comparable::value ); \ \ /* This test fails with MSVC in permissive mode, because of course it does */ \ /* STATIC_REQUIRE( !is_##op##_0_comparable::value ); */ \ } ADD_TRAIT_TEST_CASE(lt) ADD_TRAIT_TEST_CASE(gt) ADD_TRAIT_TEST_CASE(le) ADD_TRAIT_TEST_CASE(ge) ADD_TRAIT_TEST_CASE(eq) ADD_TRAIT_TEST_CASE(ne) #undef ADD_TRAIT_TEST_CASE