From bcd7674cc00fe5751b2d40ddee78f607c2620858 Mon Sep 17 00:00:00 2001 From: bolero-MURAKAMI Date: Sat, 16 Jun 2012 00:08:42 +0900 Subject: [PATCH] fix for constexpr disabled add sprout::adaptors::sized --- libs/algorithm/test/bogo_sort.cpp | 24 +- libs/algorithm/test/bogo_sort_result.cpp | 40 +- libs/algorithm/test/copy.cpp | 16 +- libs/algorithm/test/copy_backward.cpp | 16 +- libs/algorithm/test/copy_if.cpp | 16 +- libs/algorithm/test/copy_n.cpp | 16 +- libs/algorithm/test/fill.cpp | 12 +- libs/algorithm/test/fill_n.cpp | 12 +- libs/algorithm/test/generate.cpp | 12 +- libs/algorithm/test/generate_n.cpp | 12 +- libs/algorithm/test/inplace_merge.cpp | 24 +- libs/algorithm/test/make_heap.cpp | 24 +- libs/algorithm/test/make_partial_heap.cpp | 24 +- libs/algorithm/test/merge.cpp | 32 +- libs/algorithm/test/nth_element.cpp | 24 +- libs/algorithm/test/partial_sort.cpp | 24 +- libs/algorithm/test/partition.cpp | 12 +- libs/algorithm/test/partition_copy.cpp | 16 +- libs/algorithm/test/pop_heap.cpp | 12 +- libs/algorithm/test/push_heap.cpp | 24 +- libs/algorithm/test/remove.cpp | 12 +- libs/algorithm/test/remove_copy.cpp | 16 +- libs/algorithm/test/remove_copy_if.cpp | 16 +- libs/algorithm/test/remove_if.cpp | 12 +- libs/algorithm/test/replace.cpp | 12 +- libs/algorithm/test/replace_copy.cpp | 16 +- libs/algorithm/test/replace_copy_if.cpp | 16 +- libs/algorithm/test/replace_if.cpp | 12 +- libs/algorithm/test/reverse.cpp | 12 +- libs/algorithm/test/reverse_copy.cpp | 16 +- libs/algorithm/test/rotate.cpp | 12 +- libs/algorithm/test/rotate_copy.cpp | 16 +- libs/algorithm/test/set_difference.cpp | 32 +- libs/algorithm/test/set_intersection.cpp | 32 +- .../test/set_symmetric_difference.cpp | 32 +- libs/algorithm/test/set_union.cpp | 32 +- libs/algorithm/test/shuffle.cpp | 12 +- libs/algorithm/test/shuffle_result.cpp | 20 +- libs/algorithm/test/sort.cpp | 24 +- libs/algorithm/test/sort_heap.cpp | 24 +- libs/algorithm/test/stable_partition.cpp | 12 +- libs/algorithm/test/stable_partition_copy.cpp | 16 +- libs/algorithm/test/stable_sort.cpp | 24 +- libs/algorithm/test/swap_element.cpp | 12 +- libs/algorithm/test/swap_element_copy.cpp | 16 +- libs/algorithm/test/transform.cpp | 32 +- libs/algorithm/test/unique.cpp | 24 +- libs/algorithm/test/unique_copy.cpp | 32 +- libs/array/test/array.cpp | 84 +- libs/random/test/distribution_generic.hpp | 16 +- libs/random/test/engine_generic.hpp | 16 +- libs/string/test/string.cpp | 80 +- sprout/array.hpp | 2 +- sprout/cinttypes/div.hpp | 4 +- sprout/config/config.hpp | 6 + sprout/container/container_traits.hpp | 3 + sprout/cstdlib/div.hpp | 4 +- sprout/io.hpp | 2 +- sprout/iterator/bytes_iterator.hpp | 21 +- sprout/iterator/next.hpp | 6 +- sprout/iterator/prev.hpp | 6 +- sprout/math/bernoulli.hpp | 311 ++--- sprout/math/factorial.hpp | 1089 +++++++++-------- sprout/pit.hpp | 2 +- sprout/random/binomial_distribution.hpp | 36 +- sprout/random/inversive_congruential.hpp | 8 +- sprout/random/linear_congruential.hpp | 8 +- sprout/random/linear_feedback_shift.hpp | 10 +- sprout/random/mersenne_twister.hpp | 28 +- sprout/random/shuffle_order.hpp | 4 +- sprout/random/xor_combine.hpp | 4 +- sprout/range/adaptor.hpp | 1 + sprout/range/adaptor/sized.hpp | 152 +++ sprout/string/string.hpp | 4 +- sprout/sub_array.hpp | 2 +- sprout/tuple/tuple.hpp | 2 +- sprout/type_traits/inherit_if_xxx.hpp | 2 +- sprout/uuid/detail/table.hpp | 56 +- sprout/weed/detail/bdigits.hpp | 50 +- sprout/weed/detail/digits.hpp | 50 +- sprout/weed/detail/odigits.hpp | 50 +- sprout/weed/detail/xdigits.hpp | 50 +- sprout/weed/parser/lim.hpp | 2 +- testspr/tools.hpp | 16 +- 84 files changed, 1758 insertions(+), 1365 deletions(-) create mode 100644 sprout/range/adaptor/sized.hpp diff --git a/libs/algorithm/test/bogo_sort.cpp b/libs/algorithm/test/bogo_sort.cpp index 43a0b7f5..6856ad87 100644 --- a/libs/algorithm/test/bogo_sort.cpp +++ b/libs/algorithm/test/bogo_sort.cpp @@ -21,7 +21,7 @@ namespace testspr { arr1, sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5}} )); @@ -31,7 +31,7 @@ namespace testspr { arr1, sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5}} )); @@ -43,11 +43,11 @@ namespace testspr { sprout::sub(arr1, 1, 4), sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); @@ -57,11 +57,11 @@ namespace testspr { sprout::sub(arr1, 1, 4), sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); @@ -77,7 +77,7 @@ namespace testspr { sprout::random::default_random_engine(SPROUT_UNIQUE_SEED), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5}} )); @@ -88,7 +88,7 @@ namespace testspr { sprout::random::default_random_engine(SPROUT_UNIQUE_SEED), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5}} )); @@ -101,11 +101,11 @@ namespace testspr { sprout::random::default_random_engine(SPROUT_UNIQUE_SEED), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); @@ -116,11 +116,11 @@ namespace testspr { sprout::random::default_random_engine(SPROUT_UNIQUE_SEED), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 4, 3}} )); diff --git a/libs/algorithm/test/bogo_sort_result.cpp b/libs/algorithm/test/bogo_sort_result.cpp index 4f26c1d8..4c064c38 100644 --- a/libs/algorithm/test/bogo_sort_result.cpp +++ b/libs/algorithm/test/bogo_sort_result.cpp @@ -22,7 +22,7 @@ namespace testspr { arr1, g ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 3, 4, 5}} )); @@ -30,14 +30,14 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::bogo_sort_result( arr1, g ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 3, 4, 5}} )); @@ -45,7 +45,7 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } // ソート // 範囲の切り出し @@ -54,11 +54,11 @@ namespace testspr { sprout::sub(arr1, 1, 4), g ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); @@ -66,18 +66,18 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::bogo_sort_result( sprout::sub(arr1, 1, 4), g ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); @@ -85,7 +85,7 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } } { @@ -99,7 +99,7 @@ namespace testspr { g, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 3, 4, 5}} )); @@ -107,7 +107,7 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::bogo_sort_result( @@ -115,7 +115,7 @@ namespace testspr { g, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 3, 4, 5}} )); @@ -123,7 +123,7 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } // ソート // 範囲の切り出し @@ -133,11 +133,11 @@ namespace testspr { g, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); @@ -145,7 +145,7 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::bogo_sort_result( @@ -153,11 +153,11 @@ namespace testspr { g, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get<0>(sorted), array{{1, 2, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sprout::get<0>(sorted)), array{{5, 1, 2, 4, 3}} )); @@ -165,7 +165,7 @@ namespace testspr { sprout::get<0>(sorted), sprout::get<1>(sorted) ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2)); } } } diff --git a/libs/algorithm/test/copy.cpp b/libs/algorithm/test/copy.cpp index baa83b74..7d343804 100644 --- a/libs/algorithm/test/copy.cpp +++ b/libs/algorithm/test/copy.cpp @@ -22,7 +22,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8, 0, 0, 0, 0}} )); @@ -33,7 +33,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); @@ -46,7 +46,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6}} )); @@ -57,7 +57,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6}} )); @@ -70,11 +70,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); @@ -85,11 +85,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); diff --git a/libs/algorithm/test/copy_backward.cpp b/libs/algorithm/test/copy_backward.cpp index ab8e9250..1cfa2c9f 100644 --- a/libs/algorithm/test/copy_backward.cpp +++ b/libs/algorithm/test/copy_backward.cpp @@ -22,7 +22,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{0, 0, 0, 0, 3, 4, 5, 6, 7, 8}} )); @@ -33,7 +33,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); @@ -46,7 +46,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{5, 6, 7, 8}} )); @@ -57,7 +57,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{5, 6, 7, 8}} )); @@ -70,11 +70,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); @@ -85,11 +85,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); diff --git a/libs/algorithm/test/copy_if.cpp b/libs/algorithm/test/copy_if.cpp index 059bc6b3..4a3c632f 100644 --- a/libs/algorithm/test/copy_if.cpp +++ b/libs/algorithm/test/copy_if.cpp @@ -23,7 +23,7 @@ namespace testspr { arr2, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{1, 3, 5, 7, 9, 0, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { arr2, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{1, 3, 5, 7, 9}} )); @@ -49,7 +49,7 @@ namespace testspr { arr3, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{1, 3, 5, 7}} )); @@ -61,7 +61,7 @@ namespace testspr { arr3, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{1, 3, 5, 7}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{1, 3, 5, 7, 9, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 1, 3, 5, 7, 9, 0, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{1, 3, 5, 7, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 1, 3, 5, 7, 9, 0, 0, 0}} )); diff --git a/libs/algorithm/test/copy_n.cpp b/libs/algorithm/test/copy_n.cpp index bd19b285..d29ca438 100644 --- a/libs/algorithm/test/copy_n.cpp +++ b/libs/algorithm/test/copy_n.cpp @@ -21,7 +21,7 @@ namespace testspr { 6, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8, 0, 0, 0, 0}} )); @@ -32,7 +32,7 @@ namespace testspr { 6, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); @@ -46,7 +46,7 @@ namespace testspr { 6, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6}} )); @@ -57,7 +57,7 @@ namespace testspr { 6, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6}} )); @@ -70,11 +70,11 @@ namespace testspr { 6, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); @@ -85,11 +85,11 @@ namespace testspr { 6, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( copied, array{{3, 4, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(copied), array{{0, 0, 3, 4, 5, 6, 7, 8, 0, 0}} )); diff --git a/libs/algorithm/test/fill.cpp b/libs/algorithm/test/fill.cpp index ebf693e5..c5e1a5c1 100644 --- a/libs/algorithm/test/fill.cpp +++ b/libs/algorithm/test/fill.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1, -1, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, -1, -1, 9, 10}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1, -1, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, -1, -1, 9, 10}} )); diff --git a/libs/algorithm/test/fill_n.cpp b/libs/algorithm/test/fill_n.cpp index c682735b..b44dcb81 100644 --- a/libs/algorithm/test/fill_n.cpp +++ b/libs/algorithm/test/fill_n.cpp @@ -20,7 +20,7 @@ namespace testspr { 4, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1, 5, 6, 7, 8, 9, 10}} )); @@ -31,7 +31,7 @@ namespace testspr { 4, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1}} )); @@ -44,11 +44,11 @@ namespace testspr { 4, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, 7, 8, 9, 10}} )); @@ -59,11 +59,11 @@ namespace testspr { 4, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( filled, array{{-1, -1, -1, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(filled), array{{1, 2, -1, -1, -1, -1, 7, 8, 9, 10}} )); diff --git a/libs/algorithm/test/generate.cpp b/libs/algorithm/test/generate.cpp index 42288e40..51feb1e6 100644 --- a/libs/algorithm/test/generate.cpp +++ b/libs/algorithm/test/generate.cpp @@ -20,7 +20,7 @@ namespace testspr { testspr::x2(), 2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{2, 4, 8, 16, 32, 64, 128, 256, 512, 1024}} )); @@ -31,7 +31,7 @@ namespace testspr { testspr::x2(), 2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{2, 4, 8, 16, 32, 64, 128, 256, 512, 1024}} )); @@ -44,11 +44,11 @@ namespace testspr { testspr::x2(), 2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{2, 4, 8, 16, 32, 64}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(generated), array{{1, 2, 2, 4, 8, 16, 32, 64, 9, 10}} )); @@ -59,11 +59,11 @@ namespace testspr { testspr::x2(), 2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{2, 4, 8, 16, 32, 64}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(generated), array{{1, 2, 2, 4, 8, 16, 32, 64, 9, 10}} )); diff --git a/libs/algorithm/test/generate_n.cpp b/libs/algorithm/test/generate_n.cpp index 29c2ee12..f07df9c5 100644 --- a/libs/algorithm/test/generate_n.cpp +++ b/libs/algorithm/test/generate_n.cpp @@ -21,7 +21,7 @@ namespace testspr { testspr::x2(), 1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{1, 2, 4, 8, 5, 6, 7, 8, 9, 10}} )); @@ -33,7 +33,7 @@ namespace testspr { testspr::x2(), 1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{1, 2, 4, 8}} )); @@ -47,11 +47,11 @@ namespace testspr { testspr::x2(), 1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{1, 2, 4, 8, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(generated), array{{1, 2, 1, 2, 4, 8, 7, 8, 9, 10}} )); @@ -63,11 +63,11 @@ namespace testspr { testspr::x2(), 1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( generated, array{{1, 2, 4, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(generated), array{{1, 2, 1, 2, 4, 8, 7, 8, 9, 10}} )); diff --git a/libs/algorithm/test/inplace_merge.cpp b/libs/algorithm/test/inplace_merge.cpp index ff33e589..c6fe4144 100644 --- a/libs/algorithm/test/inplace_merge.cpp +++ b/libs/algorithm/test/inplace_merge.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 4, 5, 6, 7, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 4, 5, 6, 7, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); @@ -75,7 +75,7 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -86,7 +86,7 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -99,11 +99,11 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 4, 5, 6, 7, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); @@ -114,11 +114,11 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 4, 5, 6, 7, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{1, 3, 2, 4, 5, 6, 7, 9, 8, 10}} )); diff --git a/libs/algorithm/test/make_heap.cpp b/libs/algorithm/test/make_heap.cpp index bea25ad0..4de56f1c 100644 --- a/libs/algorithm/test/make_heap.cpp +++ b/libs/algorithm/test/make_heap.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::fit::make_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_heap( sprout::sub(arr1, 2, 10) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 6, 8, 2, 5, 3, 4, 1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::fit::make_heap( sprout::sub(arr1, 2, 10) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 6, 8, 2, 5, 3, 4, 1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); @@ -70,7 +70,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}} )); @@ -80,7 +80,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}} )); @@ -92,11 +92,11 @@ namespace testspr { sprout::sub(arr1, 2, 10), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 6, 8, 2, 5, 3, 4, 1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); @@ -106,11 +106,11 @@ namespace testspr { sprout::sub(arr1, 2, 10), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 6, 8, 2, 5, 3, 4, 1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 9, 6, 8, 2, 5, 3, 4, 1}} )); diff --git a/libs/algorithm/test/make_partial_heap.cpp b/libs/algorithm/test/make_partial_heap.cpp index 48e877e0..5a76fa6c 100644 --- a/libs/algorithm/test/make_partial_heap.cpp +++ b/libs/algorithm/test/make_partial_heap.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{5, 4, 1, 3, 2, 10, 9, 8, 7, 6}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{5, 4, 1, 3, 2}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 10), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{3, 1, 2, 9, 8, 6, 5, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 10), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{3, 1, 2}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); @@ -75,7 +75,7 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{5, 4, 1, 3, 2, 10, 9, 8, 7, 6}} )); @@ -86,7 +86,7 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{5, 4, 1, 3, 2}} )); @@ -99,11 +99,11 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{3, 1, 2, 9, 8, 6, 5, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); @@ -114,11 +114,11 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{3, 1, 2}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 7, 3, 1, 2, 9, 8, 6, 5, 4}} )); diff --git a/libs/algorithm/test/merge.cpp b/libs/algorithm/test/merge.cpp index ca055ae5..eb2eef19 100644 --- a/libs/algorithm/test/merge.cpp +++ b/libs/algorithm/test/merge.cpp @@ -25,7 +25,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7, 8, 9, 0, 0}} )); @@ -38,7 +38,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7, 8, 9}} )); @@ -53,7 +53,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5}} )); @@ -66,7 +66,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5}} )); @@ -81,11 +81,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); @@ -98,11 +98,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); @@ -124,7 +124,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7, 8, 9, 0, 0}} )); @@ -138,7 +138,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7, 8, 9}} )); @@ -154,7 +154,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5}} )); @@ -168,7 +168,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5}} )); @@ -184,11 +184,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); @@ -202,11 +202,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{2, 3, 4, 5, 6, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 2, 3, 4, 5, 6, 7, 0, 0}} )); diff --git a/libs/algorithm/test/nth_element.cpp b/libs/algorithm/test/nth_element.cpp index 8b51b622..793f24b9 100644 --- a/libs/algorithm/test/nth_element.cpp +++ b/libs/algorithm/test/nth_element.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 4 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 4, 1, 3, 5, 10, 9, 8, 7, 6}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 4 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 4, 1, 3, 5}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 4 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 3, 5, 9, 8, 6}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 4 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 3, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); @@ -75,7 +75,7 @@ namespace testspr { sprout::begin(arr1) + 4, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 4, 1, 3, 5, 10, 9, 8, 7, 6}} )); @@ -86,7 +86,7 @@ namespace testspr { sprout::begin(arr1) + 4, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 4, 1, 3, 5}} )); @@ -99,11 +99,11 @@ namespace testspr { sprout::begin(arr1) + 4, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 3, 5, 9, 8, 6}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); @@ -114,11 +114,11 @@ namespace testspr { sprout::begin(arr1) + 4, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( nth, array{{2, 3, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(nth), array{{10, 7, 2, 3, 5, 9, 8, 6, 4, 1}} )); diff --git a/libs/algorithm/test/partial_sort.cpp b/libs/algorithm/test/partial_sort.cpp index 905711ed..ef459361 100644 --- a/libs/algorithm/test/partial_sort.cpp +++ b/libs/algorithm/test/partial_sort.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 9, 8, 7, 10, 6}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 9, 8, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); @@ -75,7 +75,7 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 9, 8, 7, 10, 6}} )); @@ -86,7 +86,7 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5}} )); @@ -99,11 +99,11 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 9, 8, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); @@ -114,11 +114,11 @@ namespace testspr { sprout::begin(arr1) + 5, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 9, 8, 7, 10, 6}} )); diff --git a/libs/algorithm/test/partition.cpp b/libs/algorithm/test/partition.cpp index b449ebc9..f131cfd3 100644 --- a/libs/algorithm/test/partition.cpp +++ b/libs/algorithm/test/partition.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{9, 7, 5, 3, 1, 2, 4, 6, 8, 10}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{9, 7, 5, 3, 1}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{7, 5, 3, 4, 6, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{1, 2, 7, 5, 3, 4, 6, 8, 9, 10}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{7, 5, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{1, 2, 7, 5, 3, 4, 6, 8, 9, 10}} )); diff --git a/libs/algorithm/test/partition_copy.cpp b/libs/algorithm/test/partition_copy.cpp index 4d82b3ad..414956f1 100644 --- a/libs/algorithm/test/partition_copy.cpp +++ b/libs/algorithm/test/partition_copy.cpp @@ -23,7 +23,7 @@ namespace testspr { arr2, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{7, 5, 3, 4, 6, 8, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { arr2, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{7, 5, 3}} )); @@ -49,7 +49,7 @@ namespace testspr { arr3, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{5, 3, 4, 6}} )); @@ -61,7 +61,7 @@ namespace testspr { arr3, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{5, 3}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{7, 5, 3, 4, 6, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{0, 0, 7, 5, 3, 4, 6, 8, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{7, 5, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{0, 0, 7, 5, 3, 4, 6, 8, 0, 0}} )); diff --git a/libs/algorithm/test/pop_heap.cpp b/libs/algorithm/test/pop_heap.cpp index 6b9b0cc6..0cc5d0cc 100644 --- a/libs/algorithm/test/pop_heap.cpp +++ b/libs/algorithm/test/pop_heap.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::pop_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 8, 5, 6, 7, 4, 3, 1, 2, 10}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::fit::pop_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 8, 5, 6, 7, 4, 3, 1, 2}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::pop_heap( sprout::sub(arr1, 2, 10) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{7, 6, 4, 5, 3, 1, 2, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 8, 7, 6, 4, 5, 3, 1, 2, 9}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::fit::pop_heap( sprout::sub(arr1, 2, 10) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{7, 6, 4, 5, 3, 1, 2}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 8, 7, 6, 4, 5, 3, 1, 2, 9}} )); diff --git a/libs/algorithm/test/push_heap.cpp b/libs/algorithm/test/push_heap.cpp index 5d635eb2..eebdc103 100644 --- a/libs/algorithm/test/push_heap.cpp +++ b/libs/algorithm/test/push_heap.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::push_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::fit::push_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::push_heap( sprout::sub(arr1, 2, 10) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 7, 4, 6, 3, 1, 2, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto heap = sprout::fit::push_heap( sprout::sub(arr1, 2, 10) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 7, 4, 6, 3, 1, 2, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); @@ -70,7 +70,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}} )); @@ -80,7 +80,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}} )); @@ -92,11 +92,11 @@ namespace testspr { sprout::sub(arr1, 2, 10), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 7, 4, 6, 3, 1, 2, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); @@ -106,11 +106,11 @@ namespace testspr { sprout::sub(arr1, 2, 10), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( heap, array{{9, 7, 4, 6, 3, 1, 2, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(heap), array{{10, 8, 9, 7, 4, 6, 3, 1, 2, 5}} )); diff --git a/libs/algorithm/test/remove.cpp b/libs/algorithm/test/remove.cpp index 12cce8a4..29e44265 100644 --- a/libs/algorithm/test/remove.cpp +++ b/libs/algorithm/test/remove.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{1, 3, 5, 7, 9, 0, 7, 0, 9, 0}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{1, 3, 5, 7, 9}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5, 7, 0, 7, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{1, 0, 3, 5, 7, 0, 7, 0, 9, 0}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{1, 0, 3, 5, 7, 0, 7, 0, 9, 0}} )); diff --git a/libs/algorithm/test/remove_copy.cpp b/libs/algorithm/test/remove_copy.cpp index 46d8c2c0..a6d900cb 100644 --- a/libs/algorithm/test/remove_copy.cpp +++ b/libs/algorithm/test/remove_copy.cpp @@ -23,7 +23,7 @@ namespace testspr { arr2, 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5, 7, 0, 0, 0, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { arr2, 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5, 7}} )); @@ -49,7 +49,7 @@ namespace testspr { arr3, 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5}} )); @@ -61,7 +61,7 @@ namespace testspr { arr3, 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5, 7, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), 0 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); diff --git a/libs/algorithm/test/remove_copy_if.cpp b/libs/algorithm/test/remove_copy_if.cpp index 9e7911b1..23dc5873 100644 --- a/libs/algorithm/test/remove_copy_if.cpp +++ b/libs/algorithm/test/remove_copy_if.cpp @@ -23,7 +23,7 @@ namespace testspr { arr2, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { arr2, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0}} )); @@ -49,7 +49,7 @@ namespace testspr { arr3, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0}} )); @@ -61,7 +61,7 @@ namespace testspr { arr3, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} )); diff --git a/libs/algorithm/test/remove_if.cpp b/libs/algorithm/test/remove_if.cpp index 85a2621f..1c940ef7 100644 --- a/libs/algorithm/test/remove_if.cpp +++ b/libs/algorithm/test/remove_if.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0, 0, 0, 0, 7, 0, 9, 0}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0, 0, 0}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0, 0, 7, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{1, 0, 0, 0, 0, 0, 7, 0, 9, 0}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( removed, array{{0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(removed), array{{1, 0, 0, 0, 0, 0, 7, 0, 9, 0}} )); diff --git a/libs/algorithm/test/replace.cpp b/libs/algorithm/test/replace.cpp index 754ef1a8..09681972 100644 --- a/libs/algorithm/test/replace.cpp +++ b/libs/algorithm/test/replace.cpp @@ -20,7 +20,7 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{1, -1, 3, -1, 5, -1, 7, -1, 9, -1}} )); @@ -31,7 +31,7 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{1, -1, 3, -1, 5, -1, 7, -1, 9, -1}} )); @@ -44,11 +44,11 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1, 7, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{1, 0, 3, -1, 5, -1, 7, -1, 9, 0}} )); @@ -59,11 +59,11 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1, 7, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{1, 0, 3, -1, 5, -1, 7, -1, 9, 0}} )); diff --git a/libs/algorithm/test/replace_copy.cpp b/libs/algorithm/test/replace_copy.cpp index 124a430e..7585b9a9 100644 --- a/libs/algorithm/test/replace_copy.cpp +++ b/libs/algorithm/test/replace_copy.cpp @@ -24,7 +24,7 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1, 7, -1, 0, 0, 0, 0}} )); @@ -37,7 +37,7 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1, 7, -1}} )); @@ -52,7 +52,7 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1}} )); @@ -65,7 +65,7 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1}} )); @@ -80,11 +80,11 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1, 7, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{0, 0, 3, -1, 5, -1, 7, -1, 0, 0}} )); @@ -97,11 +97,11 @@ namespace testspr { 0, -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{3, -1, 5, -1, 7, -1}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{0, 0, 3, -1, 5, -1, 7, -1, 0, 0}} )); diff --git a/libs/algorithm/test/replace_copy_if.cpp b/libs/algorithm/test/replace_copy_if.cpp index 4bec2320..b8d65c23 100644 --- a/libs/algorithm/test/replace_copy_if.cpp +++ b/libs/algorithm/test/replace_copy_if.cpp @@ -24,7 +24,7 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0, 0, 0, 0, 0}} )); @@ -37,7 +37,7 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0}} )); @@ -52,7 +52,7 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0}} )); @@ -65,7 +65,7 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0}} )); @@ -80,11 +80,11 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{0, 0, -1, 0, -1, 0, -1, 0, 0, 0}} )); @@ -97,11 +97,11 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{0, 0, -1, 0, -1, 0, -1, 0, 0, 0}} )); diff --git a/libs/algorithm/test/replace_if.cpp b/libs/algorithm/test/replace_if.cpp index 81bc02ab..51693cf0 100644 --- a/libs/algorithm/test/replace_if.cpp +++ b/libs/algorithm/test/replace_if.cpp @@ -20,7 +20,7 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0, -1, 0, -1, 0}} )); @@ -31,7 +31,7 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0, -1, 0, -1, 0}} )); @@ -44,11 +44,11 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{1, 0, -1, 0, -1, 0, -1, 0, 9, 0}} )); @@ -59,11 +59,11 @@ namespace testspr { is_odd(), -1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( replaced, array{{-1, 0, -1, 0, -1, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(replaced), array{{1, 0, -1, 0, -1, 0, -1, 0, 9, 0}} )); diff --git a/libs/algorithm/test/reverse.cpp b/libs/algorithm/test/reverse.cpp index f2accd9b..4e9839a7 100644 --- a/libs/algorithm/test/reverse.cpp +++ b/libs/algorithm/test/reverse.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto reversed = sprout::fit::reverse( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5, 4, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(reversed), array{{1, 2, 8, 7, 6, 5, 4, 3, 9, 10}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto reversed = sprout::fit::reverse( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5, 4, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(reversed), array{{1, 2, 8, 7, 6, 5, 4, 3, 9, 10}} )); diff --git a/libs/algorithm/test/reverse_copy.cpp b/libs/algorithm/test/reverse_copy.cpp index 4dc164bf..f3f6c6c2 100644 --- a/libs/algorithm/test/reverse_copy.cpp +++ b/libs/algorithm/test/reverse_copy.cpp @@ -22,7 +22,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5, 4, 3, 0, 0, 0, 0}} )); @@ -33,7 +33,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5, 4, 3}} )); @@ -46,7 +46,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5}} )); @@ -57,7 +57,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5}} )); @@ -70,11 +70,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5, 4, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(reversed), array{{0, 0, 8, 7, 6, 5, 4, 3, 0, 0}} )); @@ -85,11 +85,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( reversed, array{{8, 7, 6, 5, 4, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(reversed), array{{0, 0, 8, 7, 6, 5, 4, 3, 0, 0}} )); diff --git a/libs/algorithm/test/rotate.cpp b/libs/algorithm/test/rotate.cpp index e1f1455c..cad942d8 100644 --- a/libs/algorithm/test/rotate.cpp +++ b/libs/algorithm/test/rotate.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 9, 10, 1, 2, 3, 4, 5}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 9, 10, 1, 2, 3, 4, 5}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3, 4, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(rotated), array{{1, 2, 6, 7, 8, 3, 4, 5, 9, 10}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::begin(arr1) + 5 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3, 4, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(rotated), array{{1, 2, 6, 7, 8, 3, 4, 5, 9, 10}} )); diff --git a/libs/algorithm/test/rotate_copy.cpp b/libs/algorithm/test/rotate_copy.cpp index 97dc670a..764f1b6c 100644 --- a/libs/algorithm/test/rotate_copy.cpp +++ b/libs/algorithm/test/rotate_copy.cpp @@ -23,7 +23,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3, 4, 5, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3, 4, 5}} )); @@ -49,7 +49,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3}} )); @@ -61,7 +61,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3, 4, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(rotated), array{{0, 0, 6, 7, 8, 3, 4, 5, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( rotated, array{{6, 7, 8, 3, 4, 5}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(rotated), array{{0, 0, 6, 7, 8, 3, 4, 5, 0, 0}} )); diff --git a/libs/algorithm/test/set_difference.cpp b/libs/algorithm/test/set_difference.cpp index 00952e3b..d369131d 100644 --- a/libs/algorithm/test/set_difference.cpp +++ b/libs/algorithm/test/set_difference.cpp @@ -25,7 +25,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 0, 0, 0, 0, 0, 0, 0}} )); @@ -38,7 +38,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25}} )); @@ -53,7 +53,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15}} )); @@ -66,7 +66,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15}} )); @@ -81,11 +81,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); @@ -98,11 +98,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); @@ -124,7 +124,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 0, 0, 0, 0, 0, 0, 0}} )); @@ -138,7 +138,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25}} )); @@ -154,7 +154,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15}} )); @@ -168,7 +168,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15}} )); @@ -184,11 +184,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); @@ -202,11 +202,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 0, 0, 0, 0, 0}} )); diff --git a/libs/algorithm/test/set_intersection.cpp b/libs/algorithm/test/set_intersection.cpp index b8925cc7..67bb4194 100644 --- a/libs/algorithm/test/set_intersection.cpp +++ b/libs/algorithm/test/set_intersection.cpp @@ -25,7 +25,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40, 0, 0, 0, 0, 0, 0, 0}} )); @@ -38,7 +38,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40}} )); @@ -53,7 +53,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30}} )); @@ -66,7 +66,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30}} )); @@ -81,11 +81,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); @@ -98,11 +98,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); @@ -124,7 +124,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40, 0, 0, 0, 0, 0, 0, 0}} )); @@ -138,7 +138,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40}} )); @@ -154,7 +154,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30}} )); @@ -168,7 +168,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30}} )); @@ -184,11 +184,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); @@ -202,11 +202,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{20, 30, 40}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 20, 30, 40, 0, 0, 0, 0, 0}} )); diff --git a/libs/algorithm/test/set_symmetric_difference.cpp b/libs/algorithm/test/set_symmetric_difference.cpp index 8181008d..24d26023 100644 --- a/libs/algorithm/test/set_symmetric_difference.cpp +++ b/libs/algorithm/test/set_symmetric_difference.cpp @@ -25,7 +25,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50, 0, 0, 0, 0}} )); @@ -38,7 +38,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50}} )); @@ -53,7 +53,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30}} )); @@ -66,7 +66,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30}} )); @@ -81,11 +81,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); @@ -98,11 +98,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); @@ -124,7 +124,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50, 0, 0, 0, 0}} )); @@ -138,7 +138,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50}} )); @@ -154,7 +154,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30}} )); @@ -168,7 +168,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30}} )); @@ -184,11 +184,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); @@ -202,11 +202,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 15, 25, 30, 40, 50}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 15, 25, 30, 40, 50, 0, 0}} )); diff --git a/libs/algorithm/test/set_union.cpp b/libs/algorithm/test/set_union.cpp index 358b3d0e..91bf0b62 100644 --- a/libs/algorithm/test/set_union.cpp +++ b/libs/algorithm/test/set_union.cpp @@ -25,7 +25,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30, 40, 50, 0, 0}} )); @@ -38,7 +38,7 @@ namespace testspr { sprout::end(arr1_2), arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30, 40, 50}} )); @@ -53,7 +53,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20}} )); @@ -66,7 +66,7 @@ namespace testspr { sprout::end(arr1_2), arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20}} )); @@ -81,11 +81,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); @@ -98,11 +98,11 @@ namespace testspr { sprout::end(arr1_2), sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); @@ -124,7 +124,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30, 40, 50, 0, 0}} )); @@ -138,7 +138,7 @@ namespace testspr { arr2, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30, 40, 50}} )); @@ -154,7 +154,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20}} )); @@ -168,7 +168,7 @@ namespace testspr { arr3, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20}} )); @@ -184,11 +184,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); @@ -202,11 +202,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( merged, array{{5, 10, 15, 20, 25, 30}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(merged), array{{0, 0, 5, 10, 15, 20, 25, 30, 0, 0}} )); diff --git a/libs/algorithm/test/shuffle.cpp b/libs/algorithm/test/shuffle.cpp index c147fd29..0580cf8d 100644 --- a/libs/algorithm/test/shuffle.cpp +++ b/libs/algorithm/test/shuffle.cpp @@ -21,7 +21,7 @@ namespace testspr { arr1, sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( shuffled, arr1 )); @@ -31,7 +31,7 @@ namespace testspr { arr1, sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( shuffled, arr1 )); @@ -43,11 +43,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( shuffled, sprout::sub(arr1, 2, 8) )); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get_internal(shuffled), arr1 )); @@ -57,11 +57,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), sprout::random::default_random_engine(SPROUT_UNIQUE_SEED) ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( shuffled, sprout::sub(arr1, 2, 8) )); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get_internal(shuffled), arr1 )); diff --git a/libs/algorithm/test/shuffle_result.cpp b/libs/algorithm/test/shuffle_result.cpp index 8767a6d9..6022b5bc 100644 --- a/libs/algorithm/test/shuffle_result.cpp +++ b/libs/algorithm/test/shuffle_result.cpp @@ -22,7 +22,7 @@ namespace testspr { arr1, g ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get<0>(shuffled), arr1 )); @@ -30,14 +30,14 @@ namespace testspr { sprout::get<0>(shuffled), g ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); } { SPROUT_STATIC_CONSTEXPR auto shuffled = sprout::fit::shuffle_result( arr1, g ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get<0>(shuffled), arr1 )); @@ -45,7 +45,7 @@ namespace testspr { sprout::get<0>(shuffled), g ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); } // シャッフル // 範囲の切り出し @@ -54,11 +54,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), g ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get<0>(shuffled), sprout::sub(arr1, 2, 8) )); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get_internal(sprout::get<0>(shuffled)), arr1 )); @@ -66,18 +66,18 @@ namespace testspr { sprout::get<0>(shuffled), g ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); } { SPROUT_STATIC_CONSTEXPR auto shuffled = sprout::fit::shuffle_result( sprout::sub(arr1, 2, 8), g ); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get<0>(shuffled), sprout::sub(arr1, 2, 8) )); - TESTSPR_DOUBLE_ASSERT(testspr::is_permutation( + TESTSPR_BOTH_ASSERT(testspr::is_permutation( sprout::get_internal(sprout::get<0>(shuffled)), arr1 )); @@ -85,7 +85,7 @@ namespace testspr { sprout::get<0>(shuffled), g ); - TESTSPR_DOUBLE_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); + TESTSPR_BOTH_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2)); } } } diff --git a/libs/algorithm/test/sort.cpp b/libs/algorithm/test/sort.cpp index 0cd6efb0..19b50b06 100644 --- a/libs/algorithm/test/sort.cpp +++ b/libs/algorithm/test/sort.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::sort( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 7, 8, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::sort( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 7, 8, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); @@ -70,7 +70,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -80,7 +80,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -92,11 +92,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 7, 8, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); @@ -106,11 +106,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 7, 8, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); diff --git a/libs/algorithm/test/sort_heap.cpp b/libs/algorithm/test/sort_heap.cpp index f4751576..f91cac62 100644 --- a/libs/algorithm/test/sort_heap.cpp +++ b/libs/algorithm/test/sort_heap.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::sort_heap( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort_heap( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::sort_heap( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); @@ -70,7 +70,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -80,7 +80,7 @@ namespace testspr { arr1, testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -92,11 +92,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); @@ -106,11 +106,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 5, 6, 7, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{10, 9, 2, 3, 5, 6, 7, 8, 4, 1}} )); diff --git a/libs/algorithm/test/stable_partition.cpp b/libs/algorithm/test/stable_partition.cpp index 695c54bb..f71275b9 100644 --- a/libs/algorithm/test/stable_partition.cpp +++ b/libs/algorithm/test/stable_partition.cpp @@ -19,7 +19,7 @@ namespace testspr { arr1, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{1, 3, 5, 7, 9, 2, 4, 6, 8, 10}} )); @@ -29,7 +29,7 @@ namespace testspr { arr1, testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{1, 3, 5, 7, 9}} )); @@ -41,11 +41,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7, 4, 6, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{1, 2, 3, 5, 7, 4, 6, 8, 9, 10}} )); @@ -55,11 +55,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{1, 2, 3, 5, 7, 4, 6, 8, 9, 10}} )); diff --git a/libs/algorithm/test/stable_partition_copy.cpp b/libs/algorithm/test/stable_partition_copy.cpp index a6c810f2..6bc288d2 100644 --- a/libs/algorithm/test/stable_partition_copy.cpp +++ b/libs/algorithm/test/stable_partition_copy.cpp @@ -23,7 +23,7 @@ namespace testspr { arr2, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7, 4, 6, 8, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { arr2, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7}} )); @@ -49,7 +49,7 @@ namespace testspr { arr3, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7, 4}} )); @@ -61,7 +61,7 @@ namespace testspr { arr3, is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7, 4, 6, 8}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{0, 0, 3, 5, 7, 4, 6, 8, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), is_odd() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( partitioned, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(partitioned), array{{0, 0, 3, 5, 7, 4, 6, 8, 0, 0}} )); diff --git a/libs/algorithm/test/stable_sort.cpp b/libs/algorithm/test/stable_sort.cpp index 4bbde664..72982605 100644 --- a/libs/algorithm/test/stable_sort.cpp +++ b/libs/algorithm/test/stable_sort.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::stable_sort( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::stable_sort( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::stable_sort( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 7, 8, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto sorted = sprout::fit::stable_sort( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 3, 4, 7, 8, 9}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 3, 4, 7, 8, 9, 10, 6}} )); @@ -70,7 +70,7 @@ namespace testspr { arr1, testspr::mod_less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{5, 10, 1, 6, 2, 7, 8, 3, 9, 4}} )); @@ -80,7 +80,7 @@ namespace testspr { arr1, testspr::mod_less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{5, 10, 1, 6, 2, 7, 8, 3, 9, 4}} )); @@ -92,11 +92,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::mod_less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 7, 8, 3, 9, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 7, 8, 3, 9, 4, 10, 6}} )); @@ -106,11 +106,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::mod_less() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sorted, array{{2, 7, 8, 3, 9, 4}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(sorted), array{{5, 1, 2, 7, 8, 3, 9, 4, 10, 6}} )); diff --git a/libs/algorithm/test/swap_element.cpp b/libs/algorithm/test/swap_element.cpp index 1ecf74cb..32822e9a 100644 --- a/libs/algorithm/test/swap_element.cpp +++ b/libs/algorithm/test/swap_element.cpp @@ -20,7 +20,7 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}} )); @@ -31,7 +31,7 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}} )); @@ -44,11 +44,11 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6, 7, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(swapped), array{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}} )); @@ -59,11 +59,11 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6, 7, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(swapped), array{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}} )); diff --git a/libs/algorithm/test/swap_element_copy.cpp b/libs/algorithm/test/swap_element_copy.cpp index e397fb6a..6017ca41 100644 --- a/libs/algorithm/test/swap_element_copy.cpp +++ b/libs/algorithm/test/swap_element_copy.cpp @@ -24,7 +24,7 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6, 7, 3, 0, 0, 0, 0}} )); @@ -37,7 +37,7 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6, 7, 3}} )); @@ -52,7 +52,7 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6}} )); @@ -65,7 +65,7 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6}} )); @@ -80,11 +80,11 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6, 7, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(swapped), array{{0, 0, 8, 4, 5, 6, 7, 3, 0, 0}} )); @@ -97,11 +97,11 @@ namespace testspr { sprout::begin(arr1) + 2, sprout::begin(arr1) + 7 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( swapped, array{{8, 4, 5, 6, 7, 3}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(swapped), array{{0, 0, 8, 4, 5, 6, 7, 3, 0, 0}} )); diff --git a/libs/algorithm/test/transform.cpp b/libs/algorithm/test/transform.cpp index e4d40576..640b4ba4 100644 --- a/libs/algorithm/test/transform.cpp +++ b/libs/algorithm/test/transform.cpp @@ -23,7 +23,7 @@ namespace testspr { arr2, testspr::x2() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16, 0, 0, 0, 0}} )); @@ -35,7 +35,7 @@ namespace testspr { arr2, testspr::x2() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16}} )); @@ -49,7 +49,7 @@ namespace testspr { arr3, testspr::x2() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12}} )); @@ -61,7 +61,7 @@ namespace testspr { arr3, testspr::x2() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12}} )); @@ -75,11 +75,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::x2() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); @@ -91,11 +91,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::x2() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); @@ -116,7 +116,7 @@ namespace testspr { arr2, testspr::plus() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16, 0, 0, 0, 0}} )); @@ -129,7 +129,7 @@ namespace testspr { arr2, testspr::plus() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16}} )); @@ -144,7 +144,7 @@ namespace testspr { arr3, testspr::plus() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12}} )); @@ -157,7 +157,7 @@ namespace testspr { arr3, testspr::plus() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12}} )); @@ -172,11 +172,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::plus() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); @@ -189,11 +189,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::plus() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( transformed, array{{6, 8, 10, 12, 14, 16}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(transformed), array{{0, 0, 6, 8, 10, 12, 14, 16, 0, 0}} )); diff --git a/libs/algorithm/test/unique.cpp b/libs/algorithm/test/unique.cpp index 91206d86..d93a33a8 100644 --- a/libs/algorithm/test/unique.cpp +++ b/libs/algorithm/test/unique.cpp @@ -18,7 +18,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{1, 3, 5, 7, 9, 5, 7, 7, 9, 9}} )); @@ -27,7 +27,7 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::fit::unique( arr1 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{1, 3, 5, 7, 9}} )); @@ -38,11 +38,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7, 5, 7, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); @@ -51,11 +51,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::fit::unique( sprout::sub(arr1, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); @@ -70,7 +70,7 @@ namespace testspr { arr1, testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{1, 3, 5, 7, 9, 5, 7, 7, 9, 9}} )); @@ -80,7 +80,7 @@ namespace testspr { arr1, testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{1, 3, 5, 7, 9}} )); @@ -92,11 +92,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7, 5, 7, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); @@ -106,11 +106,11 @@ namespace testspr { sprout::sub(arr1, 2, 8), testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{1, 1, 3, 5, 7, 5, 7, 7, 9, 9}} )); diff --git a/libs/algorithm/test/unique_copy.cpp b/libs/algorithm/test/unique_copy.cpp index 61e2615c..ea04f68e 100644 --- a/libs/algorithm/test/unique_copy.cpp +++ b/libs/algorithm/test/unique_copy.cpp @@ -22,7 +22,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7, 0, 0, 0, 0, 0, 0, 0}} )); @@ -33,7 +33,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr2 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7}} )); @@ -46,7 +46,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5}} )); @@ -57,7 +57,7 @@ namespace testspr { sprout::begin(arr1) + 8, arr3 ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5}} )); @@ -70,11 +70,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); @@ -85,11 +85,11 @@ namespace testspr { sprout::begin(arr1) + 8, sprout::sub(arr2, 2, 8) ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); @@ -108,7 +108,7 @@ namespace testspr { arr2, testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7, 0, 0, 0, 0, 0, 0, 0}} )); @@ -120,7 +120,7 @@ namespace testspr { arr2, testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7}} )); @@ -134,7 +134,7 @@ namespace testspr { arr3, testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5}} )); @@ -146,7 +146,7 @@ namespace testspr { arr3, testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5}} )); @@ -160,11 +160,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7, 0, 0, 0}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); @@ -176,11 +176,11 @@ namespace testspr { sprout::sub(arr2, 2, 8), testspr::equal_to() ); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( uniqued, array{{3, 5, 7}} )); - TESTSPR_DOUBLE_ASSERT(testspr::equal( + TESTSPR_BOTH_ASSERT(testspr::equal( sprout::get_internal(uniqued), array{{0, 0, 3, 5, 7, 0, 0, 0, 0, 0}} )); diff --git a/libs/array/test/array.cpp b/libs/array/test/array.cpp index c7114342..afb17483 100644 --- a/libs/array/test/array.cpp +++ b/libs/array/test/array.cpp @@ -14,74 +14,74 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto arr2 = sprout::make_array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); SPROUT_STATIC_CONSTEXPR auto arr3 = sprout::make_common_array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); - TESTSPR_DOUBLE_ASSERT(testspr::equal(carr, arr1)); - TESTSPR_DOUBLE_ASSERT(testspr::equal(carr, arr2)); - TESTSPR_DOUBLE_ASSERT(testspr::equal(carr, arr3)); + TESTSPR_BOTH_ASSERT(testspr::equal(carr, arr1)); + TESTSPR_BOTH_ASSERT(testspr::equal(carr, arr2)); + TESTSPR_BOTH_ASSERT(testspr::equal(carr, arr3)); // begin - TESTSPR_DOUBLE_ASSERT(carr[0] == *arr1.begin()); - TESTSPR_DOUBLE_ASSERT(carr[0] == *arr2.begin()); + TESTSPR_BOTH_ASSERT(carr[0] == *arr1.begin()); + TESTSPR_BOTH_ASSERT(carr[0] == *arr2.begin()); // cbegin - TESTSPR_DOUBLE_ASSERT(carr[0] == *arr1.cbegin()); - TESTSPR_DOUBLE_ASSERT(carr[0] == *arr2.cbegin()); + TESTSPR_BOTH_ASSERT(carr[0] == *arr1.cbegin()); + TESTSPR_BOTH_ASSERT(carr[0] == *arr2.cbegin()); // end - TESTSPR_DOUBLE_ASSERT(carr[9] == *(arr1.end() - 1)); - TESTSPR_DOUBLE_ASSERT(carr[9] == *(arr2.end() - 1)); + TESTSPR_BOTH_ASSERT(carr[9] == *(arr1.end() - 1)); + TESTSPR_BOTH_ASSERT(carr[9] == *(arr2.end() - 1)); // cend - TESTSPR_DOUBLE_ASSERT(carr[9] == *(arr1.cend() - 1)); - TESTSPR_DOUBLE_ASSERT(carr[9] == *(arr2.cend() - 1)); + TESTSPR_BOTH_ASSERT(carr[9] == *(arr1.cend() - 1)); + TESTSPR_BOTH_ASSERT(carr[9] == *(arr2.cend() - 1)); // rbegin - TESTSPR_DOUBLE_ASSERT(carr[9] == *arr1.rbegin()); - TESTSPR_DOUBLE_ASSERT(carr[9] == *arr2.rbegin()); + TESTSPR_BOTH_ASSERT(carr[9] == *arr1.rbegin()); + TESTSPR_BOTH_ASSERT(carr[9] == *arr2.rbegin()); // crbegin - TESTSPR_DOUBLE_ASSERT(carr[9] == *arr1.crbegin()); - TESTSPR_DOUBLE_ASSERT(carr[9] == *arr2.crbegin()); + TESTSPR_BOTH_ASSERT(carr[9] == *arr1.crbegin()); + TESTSPR_BOTH_ASSERT(carr[9] == *arr2.crbegin()); // rend - TESTSPR_DOUBLE_ASSERT(carr[0] == *(arr1.rend() - 1)); - TESTSPR_DOUBLE_ASSERT(carr[0] == *(arr2.rend() - 1)); + TESTSPR_BOTH_ASSERT(carr[0] == *(arr1.rend() - 1)); + TESTSPR_BOTH_ASSERT(carr[0] == *(arr2.rend() - 1)); // crend - TESTSPR_DOUBLE_ASSERT(carr[0] == *(arr1.crend() - 1)); - TESTSPR_DOUBLE_ASSERT(carr[0] == *(arr2.crend() - 1)); + TESTSPR_BOTH_ASSERT(carr[0] == *(arr1.crend() - 1)); + TESTSPR_BOTH_ASSERT(carr[0] == *(arr2.crend() - 1)); // size - TESTSPR_DOUBLE_ASSERT(arr1.size() == 10); - TESTSPR_DOUBLE_ASSERT(arr2.size() == 10); + TESTSPR_BOTH_ASSERT(arr1.size() == 10); + TESTSPR_BOTH_ASSERT(arr2.size() == 10); // empty - TESTSPR_DOUBLE_ASSERT(!arr1.empty()); - TESTSPR_DOUBLE_ASSERT(!arr2.empty()); - TESTSPR_DOUBLE_ASSERT((array{{}}.empty())); + TESTSPR_BOTH_ASSERT(!arr1.empty()); + TESTSPR_BOTH_ASSERT(!arr2.empty()); + TESTSPR_BOTH_ASSERT((array{{}}.empty())); // max_size - TESTSPR_DOUBLE_ASSERT(arr1.max_size() == 10); - TESTSPR_DOUBLE_ASSERT(arr2.max_size() == 10); + TESTSPR_BOTH_ASSERT(arr1.max_size() == 10); + TESTSPR_BOTH_ASSERT(arr2.max_size() == 10); // operator[] - TESTSPR_DOUBLE_ASSERT(carr[0] == arr1[0]); - TESTSPR_DOUBLE_ASSERT(carr[0] == arr2[0]); + TESTSPR_BOTH_ASSERT(carr[0] == arr1[0]); + TESTSPR_BOTH_ASSERT(carr[0] == arr2[0]); // at - TESTSPR_DOUBLE_ASSERT(carr[0] == arr1.at(0)); - TESTSPR_DOUBLE_ASSERT(carr[0] == arr2.at(0)); + TESTSPR_BOTH_ASSERT(carr[0] == arr1.at(0)); + TESTSPR_BOTH_ASSERT(carr[0] == arr2.at(0)); // front - TESTSPR_DOUBLE_ASSERT(carr[0] == arr1.front()); - TESTSPR_DOUBLE_ASSERT(carr[0] == arr2.front()); + TESTSPR_BOTH_ASSERT(carr[0] == arr1.front()); + TESTSPR_BOTH_ASSERT(carr[0] == arr2.front()); // back - TESTSPR_DOUBLE_ASSERT(carr[9] == arr1.back()); - TESTSPR_DOUBLE_ASSERT(carr[9] == arr2.back()); + TESTSPR_BOTH_ASSERT(carr[9] == arr1.back()); + TESTSPR_BOTH_ASSERT(carr[9] == arr2.back()); // data - TESTSPR_DOUBLE_ASSERT(carr[0] == *arr1.data()); - TESTSPR_DOUBLE_ASSERT(carr[0] == *arr2.data()); + TESTSPR_BOTH_ASSERT(carr[0] == *arr1.data()); + TESTSPR_BOTH_ASSERT(carr[0] == *arr2.data()); // c_array { @@ -119,22 +119,22 @@ namespace testspr { } // operator== - TESTSPR_DOUBLE_ASSERT(arr1 == arr2); + TESTSPR_BOTH_ASSERT(arr1 == arr2); // operator!= - TESTSPR_DOUBLE_ASSERT(!(arr1 != arr2)); + TESTSPR_BOTH_ASSERT(!(arr1 != arr2)); // operator< - TESTSPR_DOUBLE_ASSERT(!(arr1 < arr2)); + TESTSPR_BOTH_ASSERT(!(arr1 < arr2)); // operator> - TESTSPR_DOUBLE_ASSERT(!(arr1 > arr2)); + TESTSPR_BOTH_ASSERT(!(arr1 > arr2)); // operator<= - TESTSPR_DOUBLE_ASSERT(arr1 <= arr2); + TESTSPR_BOTH_ASSERT(arr1 <= arr2); // operator>= - TESTSPR_DOUBLE_ASSERT(arr1 >= arr2); + TESTSPR_BOTH_ASSERT(arr1 >= arr2); } } } // namespace testspr diff --git a/libs/random/test/distribution_generic.hpp b/libs/random/test/distribution_generic.hpp index 2c33a99e..9c97a6eb 100644 --- a/libs/random/test/distribution_generic.hpp +++ b/libs/random/test/distribution_generic.hpp @@ -19,10 +19,10 @@ namespace testspr { // min // max - TESTSPR_DOUBLE_ASSERT(dist1.min() <= dist1.max()); + TESTSPR_BOTH_ASSERT(dist1.min() <= dist1.max()); // param - TESTSPR_DOUBLE_ASSERT(parm == dist1.param()); + TESTSPR_BOTH_ASSERT(parm == dist1.param()); { auto dist_temp = Distribution(); dist_temp.param(parm); @@ -31,8 +31,8 @@ namespace testspr { // operator== // operator!= - TESTSPR_DOUBLE_ASSERT(dist1 == dist2); - TESTSPR_DOUBLE_ASSERT(!(dist1 != dist2)); + TESTSPR_BOTH_ASSERT(dist1 == dist2); + TESTSPR_BOTH_ASSERT(!(dist1 != dist2)); { std::string s; @@ -65,14 +65,14 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto rnd = dist1(eng); // result - TESTSPR_DOUBLE_ASSERT(dist1.min() <= rnd.result()); - TESTSPR_DOUBLE_ASSERT(rnd.result() <= dist1.max()); + TESTSPR_BOTH_ASSERT(dist1.min() <= rnd.result()); + TESTSPR_BOTH_ASSERT(rnd.result() <= dist1.max()); // engine - TESTSPR_DOUBLE_ASSERT(rnd.engine().min() <= rnd.engine().max()); + TESTSPR_BOTH_ASSERT(rnd.engine().min() <= rnd.engine().max()); // distribution - TESTSPR_DOUBLE_ASSERT(rnd.distribution().min() <= rnd.distribution().max()); + TESTSPR_BOTH_ASSERT(rnd.distribution().min() <= rnd.distribution().max()); } } } diff --git a/libs/random/test/engine_generic.hpp b/libs/random/test/engine_generic.hpp index ae4c6693..7db43828 100644 --- a/libs/random/test/engine_generic.hpp +++ b/libs/random/test/engine_generic.hpp @@ -16,14 +16,14 @@ namespace testspr { // min // max - TESTSPR_DOUBLE_ASSERT(eng1.min() <= eng1.max()); + TESTSPR_BOTH_ASSERT(eng1.min() <= eng1.max()); // operator== // operator!= -// TESTSPR_DOUBLE_ASSERT(eng1 == eng1); -// TESTSPR_DOUBLE_ASSERT(!(eng1 == eng2)); -// TESTSPR_DOUBLE_ASSERT(eng1 != eng2); -// TESTSPR_DOUBLE_ASSERT(!(eng1 != eng1)); +// TESTSPR_BOTH_ASSERT(eng1 == eng1); +// TESTSPR_BOTH_ASSERT(!(eng1 == eng2)); +// TESTSPR_BOTH_ASSERT(eng1 != eng2); +// TESTSPR_BOTH_ASSERT(!(eng1 != eng1)); TESTSPR_ASSERT(eng1 == eng1); TESTSPR_ASSERT(!(eng1 == eng2)); TESTSPR_ASSERT(eng1 != eng2); @@ -58,11 +58,11 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto rnd = eng1(); // result - TESTSPR_DOUBLE_ASSERT(eng1.min() <= rnd.result()); - TESTSPR_DOUBLE_ASSERT(rnd.result() <= eng1.max()); + TESTSPR_BOTH_ASSERT(eng1.min() <= rnd.result()); + TESTSPR_BOTH_ASSERT(rnd.result() <= eng1.max()); // engine - TESTSPR_DOUBLE_ASSERT(rnd.engine().min() <= rnd.engine().max()); + TESTSPR_BOTH_ASSERT(rnd.engine().min() <= rnd.engine().max()); } } } diff --git a/libs/string/test/string.cpp b/libs/string/test/string.cpp index 8d6da47d..3b15acca 100644 --- a/libs/string/test/string.cpp +++ b/libs/string/test/string.cpp @@ -16,60 +16,60 @@ namespace testspr { SPROUT_STATIC_CONSTEXPR auto str1 = to_string(cstr); SPROUT_STATIC_CONSTEXPR auto str2 = to_string("hogehoge"); - TESTSPR_DOUBLE_ASSERT((std::is_same const>::value)); - TESTSPR_DOUBLE_ASSERT((std::is_same const>::value)); + TESTSPR_BOTH_ASSERT((std::is_same const>::value)); + TESTSPR_BOTH_ASSERT((std::is_same const>::value)); // begin - TESTSPR_DOUBLE_ASSERT(cstr[0] == *str1.begin()); + TESTSPR_BOTH_ASSERT(cstr[0] == *str1.begin()); // cbegin - TESTSPR_DOUBLE_ASSERT(cstr[0] == *str1.cbegin()); + TESTSPR_BOTH_ASSERT(cstr[0] == *str1.cbegin()); // end - TESTSPR_DOUBLE_ASSERT(cstr[9] == *(str1.end() - 1)); + TESTSPR_BOTH_ASSERT(cstr[9] == *(str1.end() - 1)); // cend - TESTSPR_DOUBLE_ASSERT(cstr[9] == *(str1.cend() - 1)); + TESTSPR_BOTH_ASSERT(cstr[9] == *(str1.cend() - 1)); // rbegin - TESTSPR_DOUBLE_ASSERT(cstr[9] == *str1.rbegin()); + TESTSPR_BOTH_ASSERT(cstr[9] == *str1.rbegin()); // crbegin - TESTSPR_DOUBLE_ASSERT(cstr[9] == *str1.crbegin()); + TESTSPR_BOTH_ASSERT(cstr[9] == *str1.crbegin()); // rend - TESTSPR_DOUBLE_ASSERT(cstr[0] == *(str1.rend() - 1)); + TESTSPR_BOTH_ASSERT(cstr[0] == *(str1.rend() - 1)); // crend - TESTSPR_DOUBLE_ASSERT(cstr[0] == *(str1.crend() - 1)); + TESTSPR_BOTH_ASSERT(cstr[0] == *(str1.crend() - 1)); // size - TESTSPR_DOUBLE_ASSERT(str1.size() == 10); + TESTSPR_BOTH_ASSERT(str1.size() == 10); // empty - TESTSPR_DOUBLE_ASSERT(!str1.empty()); - TESTSPR_DOUBLE_ASSERT((string_t<0>::type().empty())); + TESTSPR_BOTH_ASSERT(!str1.empty()); + TESTSPR_BOTH_ASSERT((string_t<0>::type().empty())); // max_size - TESTSPR_DOUBLE_ASSERT(str1.max_size() == 10); + TESTSPR_BOTH_ASSERT(str1.max_size() == 10); // operator[] - TESTSPR_DOUBLE_ASSERT(cstr[0] == str1[0]); + TESTSPR_BOTH_ASSERT(cstr[0] == str1[0]); // at - TESTSPR_DOUBLE_ASSERT(cstr[0] == str1.at(0)); + TESTSPR_BOTH_ASSERT(cstr[0] == str1.at(0)); // front - TESTSPR_DOUBLE_ASSERT(cstr[0] == str1.front()); + TESTSPR_BOTH_ASSERT(cstr[0] == str1.front()); // back - TESTSPR_DOUBLE_ASSERT(cstr[9] == str1.back()); + TESTSPR_BOTH_ASSERT(cstr[9] == str1.back()); // data - TESTSPR_DOUBLE_ASSERT(cstr[0] == *str1.data()); + TESTSPR_BOTH_ASSERT(cstr[0] == *str1.data()); // c_str - TESTSPR_DOUBLE_ASSERT(cstr[0] == *str1.c_str()); + TESTSPR_BOTH_ASSERT(cstr[0] == *str1.c_str()); // swap { @@ -132,52 +132,52 @@ namespace testspr { } // compare - TESTSPR_DOUBLE_ASSERT(str1.compare(cstr) == 0); - TESTSPR_DOUBLE_ASSERT(str1.compare("zzzz") < 0); - TESTSPR_DOUBLE_ASSERT(str1.compare("aaaa") > 0); + TESTSPR_BOTH_ASSERT(str1.compare(cstr) == 0); + TESTSPR_BOTH_ASSERT(str1.compare("zzzz") < 0); + TESTSPR_BOTH_ASSERT(str1.compare("aaaa") > 0); // substr { SPROUT_STATIC_CONSTEXPR auto str3 = str1.substr(); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar1234"); + TESTSPR_BOTH_ASSERT(str3 == "foobar1234"); } { SPROUT_STATIC_CONSTEXPR auto str3 = str1.substr(6); - TESTSPR_DOUBLE_ASSERT(str3 == "1234"); + TESTSPR_BOTH_ASSERT(str3 == "1234"); } { SPROUT_STATIC_CONSTEXPR auto str3 = str1.substr(0, 6); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar"); + TESTSPR_BOTH_ASSERT(str3 == "foobar"); } // operator== - TESTSPR_DOUBLE_ASSERT(!(str1 == str2)); + TESTSPR_BOTH_ASSERT(!(str1 == str2)); // operator!= - TESTSPR_DOUBLE_ASSERT(str1 != str2); + TESTSPR_BOTH_ASSERT(str1 != str2); // operator< - TESTSPR_DOUBLE_ASSERT(str1 < str2); + TESTSPR_BOTH_ASSERT(str1 < str2); // operator> - TESTSPR_DOUBLE_ASSERT(!(str1 > str2)); + TESTSPR_BOTH_ASSERT(!(str1 > str2)); // operator<= - TESTSPR_DOUBLE_ASSERT(str1 <= str2); + TESTSPR_BOTH_ASSERT(str1 <= str2); // operator>= - TESTSPR_DOUBLE_ASSERT(!(str1 >= str2)); + TESTSPR_BOTH_ASSERT(!(str1 >= str2)); // operator+ { #ifdef SPROUT_CONFIG_USE_INDEX_ITERATOR_IMPLEMENTATION // ! Error in GCC4.7 SPROUT_STATIC_CONSTEXPR auto str3 = str1 + to_string("hogehoge"); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar1234hogehoge"); + TESTSPR_BOTH_ASSERT(str3 == "foobar1234hogehoge"); #endif SPROUT_STATIC_CONSTEXPR auto str4 = str1 + str2; - TESTSPR_DOUBLE_ASSERT(str4 == "foobar1234hogehoge"); + TESTSPR_BOTH_ASSERT(str4 == "foobar1234hogehoge"); } // operator<< @@ -198,25 +198,25 @@ namespace testspr { // string_from_c_str { SPROUT_STATIC_CONSTEXPR auto str3 = string_from_c_str<10>(cstr); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar1234"); + TESTSPR_BOTH_ASSERT(str3 == "foobar1234"); } { SPROUT_STATIC_CONSTEXPR auto str3 = string_from_c_str<10>(cstr, 6); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar"); + TESTSPR_BOTH_ASSERT(str3 == "foobar"); } // make_string { SPROUT_STATIC_CONSTEXPR auto str3 = make_string('f', 'o', 'o', 'b', 'a', 'r'); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar"); - TESTSPR_DOUBLE_ASSERT(str3.size() == 6); + TESTSPR_BOTH_ASSERT(str3 == "foobar"); + TESTSPR_BOTH_ASSERT(str3.size() == 6); } // operator basic_string { SPROUT_STATIC_CONSTEXPR string_t<10>::type str3 = to_string("foobar"); - TESTSPR_DOUBLE_ASSERT(str3 == "foobar"); - TESTSPR_DOUBLE_ASSERT(str3.size() == 6); + TESTSPR_BOTH_ASSERT(str3 == "foobar"); + TESTSPR_BOTH_ASSERT(str3.size() == 6); } } } diff --git a/sprout/array.hpp b/sprout/array.hpp index d82403fb..9c95fabe 100644 --- a/sprout/array.hpp +++ b/sprout/array.hpp @@ -184,7 +184,7 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR typename sprout::array::size_type sprout::array::static_size; + SPROUT_CONSTEXPR_OR_CONST typename sprout::array::size_type sprout::array::static_size; // // operator== diff --git a/sprout/cinttypes/div.hpp b/sprout/cinttypes/div.hpp index 27757cfd..6cbdc1a8 100644 --- a/sprout/cinttypes/div.hpp +++ b/sprout/cinttypes/div.hpp @@ -19,8 +19,8 @@ namespace sprout { struct div_t_traits2 { \ public: \ typedef DIV_T type; \ - static SPROUT_CONSTEXPR std::size_t offsetof_quot = offsetof(DIV_T, quot); \ - static SPROUT_CONSTEXPR std::size_t offsetof_rem = offsetof(DIV_T, rem); \ + SPROUT_STATIC_CONSTEXPR std::size_t offsetof_quot = offsetof(DIV_T, quot); \ + SPROUT_STATIC_CONSTEXPR std::size_t offsetof_rem = offsetof(DIV_T, rem); \ } SPROUT_DETAIL_DIV_T_TRAITS2_IMPL(std::intmax_t, std::imaxdiv_t); diff --git a/sprout/config/config.hpp b/sprout/config/config.hpp index 5e43473d..8ec3cf2b 100644 --- a/sprout/config/config.hpp +++ b/sprout/config/config.hpp @@ -11,10 +11,16 @@ # define SPROUT_CONSTEXPR constexpr # define SPROUT_CONSTEXPR_OR_CONST constexpr # define SPROUT_STATIC_CONSTEXPR static constexpr +# +# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(EXPR) = EXPR +# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(EXPR) #else // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR # define SPROUT_CONSTEXPR # define SPROUT_CONSTEXPR_OR_CONST const # define SPROUT_STATIC_CONSTEXPR static const +# +# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(EXPR) +# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(EXPR) = EXPR #endif // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT diff --git a/sprout/container/container_traits.hpp b/sprout/container/container_traits.hpp index 3236cb8a..5a24878d 100644 --- a/sprout/container/container_traits.hpp +++ b/sprout/container/container_traits.hpp @@ -406,6 +406,9 @@ namespace sprout { return static_size; } }; + template + SPROUT_CONSTEXPR_OR_CONST typename sprout::detail::container_traits_default::size_type + sprout::detail::container_traits_default::static_size; // // container_traits_const_default diff --git a/sprout/cstdlib/div.hpp b/sprout/cstdlib/div.hpp index 16c08bf7..bdb2c84e 100644 --- a/sprout/cstdlib/div.hpp +++ b/sprout/cstdlib/div.hpp @@ -19,8 +19,8 @@ namespace sprout { struct div_t_traits { \ public: \ typedef DIV_T type; \ - static SPROUT_CONSTEXPR std::size_t offsetof_quot = offsetof(DIV_T, quot); \ - static SPROUT_CONSTEXPR std::size_t offsetof_rem = offsetof(DIV_T, rem); \ + SPROUT_STATIC_CONSTEXPR std::size_t offsetof_quot = offsetof(DIV_T, quot); \ + SPROUT_STATIC_CONSTEXPR std::size_t offsetof_rem = offsetof(DIV_T, rem); \ } SPROUT_DETAIL_DIV_T_TRAITS_IMPL(int, std::div_t); diff --git a/sprout/io.hpp b/sprout/io.hpp index 709cb1ae..84bd992b 100644 --- a/sprout/io.hpp +++ b/sprout/io.hpp @@ -88,7 +88,7 @@ namespace sprout { field_flag(field_flag const&) = default; }; template - SPROUT_CONSTEXPR sprout::io::flags::fmtflags sprout::io::flags::field_flag::mask; + SPROUT_CONSTEXPR_OR_CONST sprout::io::flags::fmtflags sprout::io::flags::field_flag::mask; // // precision_t diff --git a/sprout/iterator/bytes_iterator.hpp b/sprout/iterator/bytes_iterator.hpp index f6fbeaeb..187eedc5 100644 --- a/sprout/iterator/bytes_iterator.hpp +++ b/sprout/iterator/bytes_iterator.hpp @@ -142,13 +142,13 @@ namespace sprout { } bytes_iterator& operator+=(difference_type n) { bytes_iterator temp(it_, i_ + n, ra_tag()); - temp.swap(this); - return this; + temp.swap(*this); + return *this; } bytes_iterator& operator-=(difference_type n) { bytes_iterator temp(it_, i_ - n, ra_tag()); - temp.swap(this); - return this; + temp.swap(*this); + return *this; } SPROUT_CONSTEXPR reference operator[](difference_type n) const { return *(*this + n); @@ -207,6 +207,19 @@ namespace sprout { return it - n; } + // + // distance + // + template + SPROUT_CONSTEXPR typename std::iterator_traits >::difference_type + distance( + sprout::bytes_iterator first, + sprout::bytes_iterator last + ) + { + return last - first; + } + // // make_bytes_iterator // diff --git a/sprout/iterator/next.hpp b/sprout/iterator/next.hpp index f38bc9bf..c4b72d10 100644 --- a/sprout/iterator/next.hpp +++ b/sprout/iterator/next.hpp @@ -25,8 +25,7 @@ namespace sprout { void* ) { - using std::next; - return next(sprout::forward(it)); + return std::next(sprout::forward(it)); } template @@ -48,8 +47,7 @@ namespace sprout { void* ) { - using std::next; - return next(sprout::forward(it), n); + return std::next(sprout::forward(it), n); } } // namespace detail // diff --git a/sprout/iterator/prev.hpp b/sprout/iterator/prev.hpp index 3cb8913c..f265fa0d 100644 --- a/sprout/iterator/prev.hpp +++ b/sprout/iterator/prev.hpp @@ -25,8 +25,7 @@ namespace sprout { void* ) { - using std::prev; - return prev(sprout::forward(it)); + return std::prev(sprout::forward(it)); } template @@ -48,8 +47,7 @@ namespace sprout { void* ) { - using std::prev; - return prev(sprout::forward(it), n); + return std::prev(sprout::forward(it), n); } } // namespace detail // diff --git a/sprout/math/bernoulli.hpp b/sprout/math/bernoulli.hpp index 674592bd..777de681 100644 --- a/sprout/math/bernoulli.hpp +++ b/sprout/math/bernoulli.hpp @@ -10,6 +10,151 @@ namespace sprout { namespace math { namespace detail { +# define SPROUT_BERNOULLI_TABLE_DEF_FLOAT \ + table_type{{ \ + 1.F, \ + 1.F / 6, \ + -1.F / 30, \ + 1.F / 42, \ + -1.F / 30, \ + 5.F / 66, \ + -691.F / 2730, \ + 7.F / 6, \ + -3617.F / 510, \ + 43867.F / 798, \ + -174611.F / 330, \ + 854513.F / 138, \ + -236364091.F / 2730, \ + 8553103.F / 6, \ + -236364091.F / 870, \ + 8615841276005.F / 14322, \ + -7709321041217.F / 510, \ + 2577687858367.F / 6, \ + -26315271553053477373.F / 1919190, \ + 2929993913841559.F / 6, \ + -261082718496449122051.F / 13530, \ + 1520097643918070802691.F / 1806, \ + -2.783326957930102423502e22F / 690, \ + 5.96451111593912163278e23F / 282, \ + -1.20866265222965259346e23F, \ + 7.500866746076964366856e24F, \ + -5.038778101481068914138e26F, \ + 3.65287764848181233351e28F, \ + -2.849876930245088222627e30F, \ + 2.386542749968362764465e32F, \ + -2.139994925722533366581e34F, \ + 2.050097572347809756992e36F, \ + -2.09380059113463784091e38F \ + }} +# define SPROUT_BERNOULLI_TABLE_DEF_DOUBLE \ + table_type{{ \ + 1., \ + 1. / 6, \ + -1. / 30, \ + 1. / 42, \ + -1. / 30, \ + 5. / 66, \ + -691. / 2730, \ + 7. / 6, \ + -3617. / 510, \ + 43867. / 798, \ + -174611. / 330, \ + 854513. / 138, \ + -236364091. / 2730, \ + 8553103. / 6, \ + -236364091. / 870, \ + 8615841276005. / 14322, \ + -7709321041217. / 510, \ + 2577687858367. / 6, \ + -26315271553053477373. / 1919190, \ + 2929993913841559. / 6, \ + -261082718496449122051. / 13530, \ + 1520097643918070802691. / 1806, \ + -2.783326957930102423502e22 / 690, \ + 5.96451111593912163278e23 / 282, \ + -1.20866265222965259346e23, \ + 7.500866746076964366856e24, \ + -5.038778101481068914138e26, \ + 3.65287764848181233351e28, \ + -2.849876930245088222627e30, \ + 2.386542749968362764465e32, \ + -2.139994925722533366581e34, \ + 2.050097572347809756992e36, \ + -2.09380059113463784091e38, \ + 2.275269648846351555965e40, \ + -2.62577102862395760473e42, \ + 3.21250821027180325182e44, \ + -4.159827816679471091392e46, \ + 5.692069548203528002388e48, \ + -8.21836294197845756923e50, \ + 1.250290432716699301673e53, \ + -2.001558323324837027493e55, \ + 3.36749829153643742334e57, \ + -5.947097050313544771866e59, \ + 1.101191032362797755956e62, \ + -2.135525954525350118866e64, \ + 4.332889698664119241962e66, \ + -9.18855282416693282262e68 , \ + 2.034689677632907449346e71, \ + -4.70038339580357310786e73, \ + 1.131804344548424927068e76, \ + -2.838224957069370695926e78 \ + }} +# define SPROUT_BERNOULLI_TABLE_DEF_LONG_DOUBLE \ + table_type{{ \ + 1.L, \ + 1.L / 6, \ + -1.L / 30, \ + 1.L / 42, \ + -1.L / 30, \ + 5.L / 66, \ + -691.L / 2730, \ + 7.L / 6, \ + -3617.L / 510, \ + 43867.L / 798, \ + -174611.L / 330, \ + 854513.L / 138, \ + -236364091.L / 2730, \ + 8553103.L / 6, \ + -236364091.L / 870, \ + 8615841276005.L / 14322, \ + -7709321041217.L / 510, \ + 2577687858367.L / 6, \ + -26315271553053477373.L / 1919190, \ + 2929993913841559.L / 6, \ + -261082718496449122051.L / 13530, \ + 1520097643918070802691.L / 1806, \ + -2.783326957930102423502e22L / 690, \ + 5.96451111593912163278e23L / 282, \ + -1.20866265222965259346e23L, \ + 7.500866746076964366856e24L, \ + -5.038778101481068914138e26L, \ + 3.65287764848181233351e28L, \ + -2.849876930245088222627e30L, \ + 2.386542749968362764465e32L, \ + -2.139994925722533366581e34L, \ + 2.050097572347809756992e36L, \ + -2.09380059113463784091e38L, \ + 2.275269648846351555965e40L, \ + -2.62577102862395760473e42L, \ + 3.21250821027180325182e44L, \ + -4.159827816679471091392e46L, \ + 5.692069548203528002388e48L, \ + -8.21836294197845756923e50L, \ + 1.250290432716699301673e53L, \ + -2.001558323324837027493e55L, \ + 3.36749829153643742334e57L, \ + -5.947097050313544771866e59L, \ + 1.101191032362797755956e62L, \ + -2.135525954525350118866e64L, \ + 4.332889698664119241962e66L, \ + -9.18855282416693282262e68L, \ + 2.034689677632907449346e71L, \ + -4.70038339580357310786e73L, \ + 1.131804344548424927068e76L, \ + -2.838224957069370695926e78L \ + }} + template struct bernoulli_numbers; @@ -22,47 +167,15 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1.F, - 1.F / 6, - -1.F / 30, - 1.F / 42, - -1.F / 30, - 5.F / 66, - -691.F / 2730, - 7.F / 6, - -3617.F / 510, - 43867.F / 798, - -174611.F / 330, - 854513.F / 138, - -236364091.F / 2730, - 8553103.F / 6, - -236364091.F / 870, - 8615841276005.F / 14322, - -7709321041217.F / 510, - 2577687858367.F / 6, - -26315271553053477373.F / 1919190, - 2929993913841559.F / 6, - -261082718496449122051.F / 13530, - 1520097643918070802691.F / 1806, - -2.783326957930102423502e22F / 690, - 5.96451111593912163278e23F / 282, - -1.20866265222965259346e23F, - 7.500866746076964366856e24F, - -5.038778101481068914138e26F, - 3.65287764848181233351e28F, - -2.849876930245088222627e30F, - 2.386542749968362764465e32F, - -2.139994925722533366581e34F, - 2.050097572347809756992e36F, - -2.09380059113463784091e38F - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_BERNOULLI_TABLE_DEF_FLOAT) + ; }; - SPROUT_CONSTEXPR typename sprout::math::detail::bernoulli_numbers< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::bernoulli_numbers< float >::table_type sprout::math::detail::bernoulli_numbers< float - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_BERNOULLI_TABLE_DEF_FLOAT); template<> struct bernoulli_numbers { @@ -73,65 +186,15 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1., - 1. / 6, - -1. / 30, - 1. / 42, - -1. / 30, - 5. / 66, - -691. / 2730, - 7. / 6, - -3617. / 510, - 43867. / 798, - -174611. / 330, - 854513. / 138, - -236364091. / 2730, - 8553103. / 6, - -236364091. / 870, - 8615841276005. / 14322, - -7709321041217. / 510, - 2577687858367. / 6, - -26315271553053477373. / 1919190, - 2929993913841559. / 6, - -261082718496449122051. / 13530, - 1520097643918070802691. / 1806, - -2.783326957930102423502e22 / 690, - 5.96451111593912163278e23 / 282, - -1.20866265222965259346e23, - 7.500866746076964366856e24, - -5.038778101481068914138e26, - 3.65287764848181233351e28, - -2.849876930245088222627e30, - 2.386542749968362764465e32, - -2.139994925722533366581e34, - 2.050097572347809756992e36, - -2.09380059113463784091e38, - 2.275269648846351555965e40, - -2.62577102862395760473e42, - 3.21250821027180325182e44, - -4.159827816679471091392e46, - 5.692069548203528002388e48, - -8.21836294197845756923e50, - 1.250290432716699301673e53, - -2.001558323324837027493e55, - 3.36749829153643742334e57, - -5.947097050313544771866e59, - 1.101191032362797755956e62, - -2.135525954525350118866e64, - 4.332889698664119241962e66, - -9.18855282416693282262e68 , - 2.034689677632907449346e71, - -4.70038339580357310786e73, - 1.131804344548424927068e76, - -2.838224957069370695926e78 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_BERNOULLI_TABLE_DEF_DOUBLE) + ; }; - SPROUT_CONSTEXPR typename sprout::math::detail::bernoulli_numbers< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::bernoulli_numbers< double >::table_type sprout::math::detail::bernoulli_numbers< double - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_BERNOULLI_TABLE_DEF_DOUBLE); template<> struct bernoulli_numbers { @@ -142,65 +205,19 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1.L, - 1.L / 6, - -1.L / 30, - 1.L / 42, - -1.L / 30, - 5.L / 66, - -691.L / 2730, - 7.L / 6, - -3617.L / 510, - 43867.L / 798, - -174611.L / 330, - 854513.L / 138, - -236364091.L / 2730, - 8553103.L / 6, - -236364091.L / 870, - 8615841276005.L / 14322, - -7709321041217.L / 510, - 2577687858367.L / 6, - -26315271553053477373.L / 1919190, - 2929993913841559.L / 6, - -261082718496449122051.L / 13530, - 1520097643918070802691.L / 1806, - -2.783326957930102423502e22L / 690, - 5.96451111593912163278e23L / 282, - -1.20866265222965259346e23L, - 7.500866746076964366856e24L, - -5.038778101481068914138e26L, - 3.65287764848181233351e28L, - -2.849876930245088222627e30L, - 2.386542749968362764465e32L, - -2.139994925722533366581e34L, - 2.050097572347809756992e36L, - -2.09380059113463784091e38L, - 2.275269648846351555965e40L, - -2.62577102862395760473e42L, - 3.21250821027180325182e44L, - -4.159827816679471091392e46L, - 5.692069548203528002388e48L, - -8.21836294197845756923e50L, - 1.250290432716699301673e53L, - -2.001558323324837027493e55L, - 3.36749829153643742334e57L, - -5.947097050313544771866e59L, - 1.101191032362797755956e62L, - -2.135525954525350118866e64L, - 4.332889698664119241962e66L, - -9.18855282416693282262e68L, - 2.034689677632907449346e71L, - -4.70038339580357310786e73L, - 1.131804344548424927068e76L, - -2.838224957069370695926e78L - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_BERNOULLI_TABLE_DEF_LONG_DOUBLE) + ; }; - SPROUT_CONSTEXPR typename sprout::math::detail::bernoulli_numbers< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::bernoulli_numbers< long double >::table_type sprout::math::detail::bernoulli_numbers< long double - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_BERNOULLI_TABLE_DEF_LONG_DOUBLE); + +# undef SPROUT_BERNOULLI_TABLE_DEF_FLOAT +# undef SPROUT_BERNOULLI_TABLE_DEF_DOUBLE +# undef SPROUT_BERNOULLI_TABLE_DEF_LONG_DOUBLE } // namespace detail // // bernoulli_number_limit diff --git a/sprout/math/factorial.hpp b/sprout/math/factorial.hpp index 8a36d00f..c666ff05 100644 --- a/sprout/math/factorial.hpp +++ b/sprout/math/factorial.hpp @@ -12,6 +12,512 @@ namespace sprout { namespace math { namespace detail { +# define SPROUT_FACTORIAL_TABLE_DEF_INT_1 \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_UINT_1 \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_INT_2 \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120, \ + 720, \ + 5040 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_UINT_2 \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120, \ + 720, \ + 5040, \ + 40320 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_INT_4 \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120, \ + 720, \ + 5040, \ + 40320, \ + 362880, \ + 3628800, \ + 39916800 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_UINT_4 \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120, \ + 720, \ + 5040, \ + 40320, \ + 362880, \ + 3628800, \ + 39916800 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_INT_8 \ + table_type{{ \ + INT64_C(1), \ + INT64_C(1), \ + INT64_C(2), \ + INT64_C(6), \ + INT64_C(24), \ + INT64_C(120), \ + INT64_C(720), \ + INT64_C(5040), \ + INT64_C(40320), \ + INT64_C(362880), \ + INT64_C(3628800), \ + INT64_C(39916800), \ + INT64_C(479001600), \ + INT64_C(6227020800), \ + INT64_C(87178291200), \ + INT64_C(1307674368000), \ + INT64_C(20922789888000), \ + INT64_C(355687428096000), \ + INT64_C(6402373705728000), \ + INT64_C(121645100408832000), \ + INT64_C(2432902008176640000) \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_UINT_8 \ + table_type{{ \ + UINT64_C(1), \ + UINT64_C(1), \ + UINT64_C(2), \ + UINT64_C(6), \ + UINT64_C(24), \ + UINT64_C(120), \ + UINT64_C(720), \ + UINT64_C(5040), \ + UINT64_C(40320), \ + UINT64_C(362880), \ + UINT64_C(3628800), \ + UINT64_C(39916800), \ + UINT64_C(479001600), \ + UINT64_C(6227020800), \ + UINT64_C(87178291200), \ + UINT64_C(1307674368000), \ + UINT64_C(20922789888000), \ + UINT64_C(355687428096000), \ + UINT64_C(6402373705728000), \ + UINT64_C(121645100408832000), \ + UINT64_C(2432902008176640000) \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_FLOAT \ + table_type{{ \ + 1.0F, \ + 1.0F, \ + 2.0F, \ + 6.0F, \ + 24.0F, \ + 120.0F, \ + 720.0F, \ + 5040.0F, \ + 40320.0F, \ + 362880.0F, \ + 3628800.0F, \ + 39916800.0F, \ + 479001600.0F, \ + 6227020800.0F, \ + 87178291200.0F, \ + 1307674368000.0F, \ + 20922789888000.0F, \ + 355687428096000.0F, \ + 6402373705728000.0F, \ + 121645100408832000.0F, \ + 0.243290200817664e19F, \ + 0.5109094217170944e20F, \ + 0.112400072777760768e22F, \ + 0.2585201673888497664e23F, \ + 0.62044840173323943936e24F, \ + 0.15511210043330985984e26F, \ + 0.403291461126605635584e27F, \ + 0.10888869450418352160768e29F, \ + 0.304888344611713860501504e30F, \ + 0.8841761993739701954543616e31F, \ + 0.26525285981219105863630848e33F, \ + 0.822283865417792281772556288e34F, \ + 0.26313083693369353016721801216e36F, \ + 0.868331761881188649551819440128e37F, \ + 0.29523279903960414084761860964352e39F \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_DOUBLE \ + table_type{{ \ + 1.0, \ + 1.0, \ + 2.0, \ + 6.0, \ + 24.0, \ + 120.0, \ + 720.0, \ + 5040.0, \ + 40320.0, \ + 362880.0, \ + 3628800.0, \ + 39916800.0, \ + 479001600.0, \ + 6227020800.0, \ + 87178291200.0, \ + 1307674368000.0, \ + 20922789888000.0, \ + 355687428096000.0, \ + 6402373705728000.0, \ + 121645100408832000.0, \ + 0.243290200817664e19, \ + 0.5109094217170944e20, \ + 0.112400072777760768e22, \ + 0.2585201673888497664e23, \ + 0.62044840173323943936e24, \ + 0.15511210043330985984e26, \ + 0.403291461126605635584e27, \ + 0.10888869450418352160768e29, \ + 0.304888344611713860501504e30, \ + 0.8841761993739701954543616e31, \ + 0.26525285981219105863630848e33, \ + 0.822283865417792281772556288e34, \ + 0.26313083693369353016721801216e36, \ + 0.868331761881188649551819440128e37, \ + 0.29523279903960414084761860964352e39, \ + 0.103331479663861449296666513375232e41, \ + 0.3719933267899012174679994481508352e42, \ + 0.137637530912263450463159795815809024e44, \ + 0.5230226174666011117600072241000742912e45, \ + 0.203978820811974433586402817399028973568e47, \ + 0.815915283247897734345611269596115894272e48, \ + 0.3345252661316380710817006205344075166515e50, \ + 0.1405006117752879898543142606244511569936e52, \ + 0.6041526306337383563735513206851399750726e53, \ + 0.265827157478844876804362581101461589032e55, \ + 0.1196222208654801945619631614956577150644e57, \ + 0.5502622159812088949850305428800254892962e58, \ + 0.2586232415111681806429643551536119799692e60, \ + 0.1241391559253607267086228904737337503852e62, \ + 0.6082818640342675608722521633212953768876e63, \ + 0.3041409320171337804361260816606476884438e65, \ + 0.1551118753287382280224243016469303211063e67, \ + 0.8065817517094387857166063685640376697529e68, \ + 0.427488328406002556429801375338939964969e70, \ + 0.2308436973392413804720927426830275810833e72, \ + 0.1269640335365827592596510084756651695958e74, \ + 0.7109985878048634518540456474637249497365e75, \ + 0.4052691950487721675568060190543232213498e77, \ + 0.2350561331282878571829474910515074683829e79, \ + 0.1386831185456898357379390197203894063459e81, \ + 0.8320987112741390144276341183223364380754e82, \ + 0.507580213877224798800856812176625227226e84, \ + 0.3146997326038793752565312235495076408801e86, \ + 0.1982608315404440064116146708361898137545e88, \ + 0.1268869321858841641034333893351614808029e90, \ + 0.8247650592082470666723170306785496252186e91, \ + 0.5443449390774430640037292402478427526443e93, \ + 0.3647111091818868528824985909660546442717e95, \ + 0.2480035542436830599600990418569171581047e97, \ + 0.1711224524281413113724683388812728390923e99, \ + 0.1197857166996989179607278372168909873646e101, \ + 0.8504785885678623175211676442399260102886e102, \ + 0.6123445837688608686152407038527467274078e104, \ + 0.4470115461512684340891257138125051110077e106, \ + 0.3307885441519386412259530282212537821457e108, \ + 0.2480914081139539809194647711659403366093e110, \ + 0.188549470166605025498793226086114655823e112, \ + 0.1451830920282858696340707840863082849837e114, \ + 0.1132428117820629783145752115873204622873e116, \ + 0.8946182130782975286851441715398316520698e117, \ + 0.7156945704626380229481153372318653216558e119, \ + 0.5797126020747367985879734231578109105412e121, \ + 0.4753643337012841748421382069894049466438e123, \ + 0.3945523969720658651189747118012061057144e125, \ + 0.3314240134565353266999387579130131288001e127, \ + 0.2817104114380550276949479442260611594801e129, \ + 0.2422709538367273238176552320344125971528e131, \ + 0.210775729837952771721360051869938959523e133, \ + 0.1854826422573984391147968456455462843802e135, \ + 0.1650795516090846108121691926245361930984e137, \ + 0.1485715964481761497309522733620825737886e139, \ + 0.1352001527678402962551665687594951421476e141, \ + 0.1243841405464130725547532432587355307758e143, \ + 0.1156772507081641574759205162306240436215e145, \ + 0.1087366156656743080273652852567866010042e147, \ + 0.103299784882390592625997020993947270954e149, \ + 0.9916779348709496892095714015418938011582e150, \ + 0.9619275968248211985332842594956369871234e152, \ + 0.942689044888324774562618574305724247381e154, \ + 0.9332621544394415268169923885626670049072e156, \ + 0.9332621544394415268169923885626670049072e158, \ + 0.9425947759838359420851623124482936749562e160, \ + 0.9614466715035126609268655586972595484554e162, \ + 0.990290071648618040754671525458177334909e164, \ + 0.1029901674514562762384858386476504428305e167, \ + 0.1081396758240290900504101305800329649721e169, \ + 0.1146280563734708354534347384148349428704e171, \ + 0.1226520203196137939351751701038733888713e173, \ + 0.132464181945182897449989183712183259981e175, \ + 0.1443859583202493582204882102462797533793e177, \ + 0.1588245541522742940425370312709077287172e179, \ + 0.1762952551090244663872161047107075788761e181, \ + 0.1974506857221074023536820372759924883413e183, \ + 0.2231192748659813646596607021218715118256e185, \ + 0.2543559733472187557120132004189335234812e187, \ + 0.2925093693493015690688151804817735520034e189, \ + 0.339310868445189820119825609358857320324e191, \ + 0.396993716080872089540195962949863064779e193, \ + 0.4684525849754290656574312362808384164393e195, \ + 0.5574585761207605881323431711741977155627e197, \ + 0.6689502913449127057588118054090372586753e199, \ + 0.8094298525273443739681622845449350829971e201, \ + 0.9875044200833601362411579871448208012564e203, \ + 0.1214630436702532967576624324188129585545e206, \ + 0.1506141741511140879795014161993280686076e208, \ + 0.1882677176888926099743767702491600857595e210, \ + 0.237217324288004688567714730513941708057e212, \ + 0.3012660018457659544809977077527059692324e214, \ + 0.3856204823625804217356770659234636406175e216, \ + 0.4974504222477287440390234150412680963966e218, \ + 0.6466855489220473672507304395536485253155e220, \ + 0.8471580690878820510984568758152795681634e222, \ + 0.1118248651196004307449963076076169029976e225, \ + 0.1487270706090685728908450891181304809868e227, \ + 0.1992942746161518876737324194182948445223e229, \ + 0.269047270731805048359538766214698040105e231, \ + 0.3659042881952548657689727220519893345429e233, \ + 0.5012888748274991661034926292112253883237e235, \ + 0.6917786472619488492228198283114910358867e237, \ + 0.9615723196941089004197195613529725398826e239, \ + 0.1346201247571752460587607385894161555836e242, \ + 0.1898143759076170969428526414110767793728e244, \ + 0.2695364137888162776588507508037290267094e246, \ + 0.3854370717180072770521565736493325081944e248, \ + 0.5550293832739304789551054660550388118e250, \ + 0.80479260574719919448490292577980627711e252, \ + 0.1174997204390910823947958271638517164581e255, \ + 0.1727245890454638911203498659308620231933e257, \ + 0.2556323917872865588581178015776757943262e259, \ + 0.380892263763056972698595524350736933546e261, \ + 0.571338395644585459047893286526105400319e263, \ + 0.8627209774233240431623188626544191544816e265, \ + 0.1311335885683452545606724671234717114812e268, \ + 0.2006343905095682394778288746989117185662e270, \ + 0.308976961384735088795856467036324046592e272, \ + 0.4789142901463393876335775239063022722176e274, \ + 0.7471062926282894447083809372938315446595e276, \ + 0.1172956879426414428192158071551315525115e279, \ + 0.1853271869493734796543609753051078529682e281, \ + 0.2946702272495038326504339507351214862195e283, \ + 0.4714723635992061322406943211761943779512e285, \ + 0.7590705053947218729075178570936729485014e287, \ + 0.1229694218739449434110178928491750176572e290, \ + 0.2004401576545302577599591653441552787813e292, \ + 0.3287218585534296227263330311644146572013e294, \ + 0.5423910666131588774984495014212841843822e296, \ + 0.9003691705778437366474261723593317460744e298, \ + 0.1503616514864999040201201707840084015944e301, \ + 0.2526075744973198387538018869171341146786e303, \ + 0.4269068009004705274939251888899566538069e305, \ + 0.7257415615307998967396728211129263114717e307 \ + }} +# define SPROUT_FACTORIAL_TABLE_DEF_LONG_DOUBLE \ + table_type{{ \ + 1.0L, \ + 1.0L, \ + 2.0L, \ + 6.0L, \ + 24.0L, \ + 120.0L, \ + 720.0L, \ + 5040.0L, \ + 40320.0L, \ + 362880.0L, \ + 3628800.0L, \ + 39916800.0L, \ + 479001600.0L, \ + 6227020800.0L, \ + 87178291200.0L, \ + 1307674368000.0L, \ + 20922789888000.0L, \ + 355687428096000.0L, \ + 6402373705728000.0L, \ + 121645100408832000.0L, \ + 0.243290200817664e19L, \ + 0.5109094217170944e20L, \ + 0.112400072777760768e22L, \ + 0.2585201673888497664e23L, \ + 0.62044840173323943936e24L, \ + 0.15511210043330985984e26L, \ + 0.403291461126605635584e27L, \ + 0.10888869450418352160768e29L, \ + 0.304888344611713860501504e30L, \ + 0.8841761993739701954543616e31L, \ + 0.26525285981219105863630848e33L, \ + 0.822283865417792281772556288e34L, \ + 0.26313083693369353016721801216e36L, \ + 0.868331761881188649551819440128e37L, \ + 0.29523279903960414084761860964352e39L, \ + 0.103331479663861449296666513375232e41L, \ + 0.3719933267899012174679994481508352e42L, \ + 0.137637530912263450463159795815809024e44L, \ + 0.5230226174666011117600072241000742912e45L, \ + 0.203978820811974433586402817399028973568e47L, \ + 0.815915283247897734345611269596115894272e48L, \ + 0.3345252661316380710817006205344075166515e50L, \ + 0.1405006117752879898543142606244511569936e52L, \ + 0.6041526306337383563735513206851399750726e53L, \ + 0.265827157478844876804362581101461589032e55L, \ + 0.1196222208654801945619631614956577150644e57L, \ + 0.5502622159812088949850305428800254892962e58L, \ + 0.2586232415111681806429643551536119799692e60L, \ + 0.1241391559253607267086228904737337503852e62L, \ + 0.6082818640342675608722521633212953768876e63L, \ + 0.3041409320171337804361260816606476884438e65L, \ + 0.1551118753287382280224243016469303211063e67L, \ + 0.8065817517094387857166063685640376697529e68L, \ + 0.427488328406002556429801375338939964969e70L, \ + 0.2308436973392413804720927426830275810833e72L, \ + 0.1269640335365827592596510084756651695958e74L, \ + 0.7109985878048634518540456474637249497365e75L, \ + 0.4052691950487721675568060190543232213498e77L, \ + 0.2350561331282878571829474910515074683829e79L, \ + 0.1386831185456898357379390197203894063459e81L, \ + 0.8320987112741390144276341183223364380754e82L, \ + 0.507580213877224798800856812176625227226e84L, \ + 0.3146997326038793752565312235495076408801e86L, \ + 0.1982608315404440064116146708361898137545e88L, \ + 0.1268869321858841641034333893351614808029e90L, \ + 0.8247650592082470666723170306785496252186e91L, \ + 0.5443449390774430640037292402478427526443e93L, \ + 0.3647111091818868528824985909660546442717e95L, \ + 0.2480035542436830599600990418569171581047e97L, \ + 0.1711224524281413113724683388812728390923e99L, \ + 0.1197857166996989179607278372168909873646e101L, \ + 0.8504785885678623175211676442399260102886e102L, \ + 0.6123445837688608686152407038527467274078e104L, \ + 0.4470115461512684340891257138125051110077e106L, \ + 0.3307885441519386412259530282212537821457e108L, \ + 0.2480914081139539809194647711659403366093e110L, \ + 0.188549470166605025498793226086114655823e112L, \ + 0.1451830920282858696340707840863082849837e114L, \ + 0.1132428117820629783145752115873204622873e116L, \ + 0.8946182130782975286851441715398316520698e117L, \ + 0.7156945704626380229481153372318653216558e119L, \ + 0.5797126020747367985879734231578109105412e121L, \ + 0.4753643337012841748421382069894049466438e123L, \ + 0.3945523969720658651189747118012061057144e125L, \ + 0.3314240134565353266999387579130131288001e127L, \ + 0.2817104114380550276949479442260611594801e129L, \ + 0.2422709538367273238176552320344125971528e131L, \ + 0.210775729837952771721360051869938959523e133L, \ + 0.1854826422573984391147968456455462843802e135L, \ + 0.1650795516090846108121691926245361930984e137L, \ + 0.1485715964481761497309522733620825737886e139L, \ + 0.1352001527678402962551665687594951421476e141L, \ + 0.1243841405464130725547532432587355307758e143L, \ + 0.1156772507081641574759205162306240436215e145L, \ + 0.1087366156656743080273652852567866010042e147L, \ + 0.103299784882390592625997020993947270954e149L, \ + 0.9916779348709496892095714015418938011582e150L, \ + 0.9619275968248211985332842594956369871234e152L, \ + 0.942689044888324774562618574305724247381e154L, \ + 0.9332621544394415268169923885626670049072e156L, \ + 0.9332621544394415268169923885626670049072e158L, \ + 0.9425947759838359420851623124482936749562e160L, \ + 0.9614466715035126609268655586972595484554e162L, \ + 0.990290071648618040754671525458177334909e164L, \ + 0.1029901674514562762384858386476504428305e167L, \ + 0.1081396758240290900504101305800329649721e169L, \ + 0.1146280563734708354534347384148349428704e171L, \ + 0.1226520203196137939351751701038733888713e173L, \ + 0.132464181945182897449989183712183259981e175L, \ + 0.1443859583202493582204882102462797533793e177L, \ + 0.1588245541522742940425370312709077287172e179L, \ + 0.1762952551090244663872161047107075788761e181L, \ + 0.1974506857221074023536820372759924883413e183L, \ + 0.2231192748659813646596607021218715118256e185L, \ + 0.2543559733472187557120132004189335234812e187L, \ + 0.2925093693493015690688151804817735520034e189L, \ + 0.339310868445189820119825609358857320324e191L, \ + 0.396993716080872089540195962949863064779e193L, \ + 0.4684525849754290656574312362808384164393e195L, \ + 0.5574585761207605881323431711741977155627e197L, \ + 0.6689502913449127057588118054090372586753e199L, \ + 0.8094298525273443739681622845449350829971e201L, \ + 0.9875044200833601362411579871448208012564e203L, \ + 0.1214630436702532967576624324188129585545e206L, \ + 0.1506141741511140879795014161993280686076e208L, \ + 0.1882677176888926099743767702491600857595e210L, \ + 0.237217324288004688567714730513941708057e212L, \ + 0.3012660018457659544809977077527059692324e214L, \ + 0.3856204823625804217356770659234636406175e216L, \ + 0.4974504222477287440390234150412680963966e218L, \ + 0.6466855489220473672507304395536485253155e220L, \ + 0.8471580690878820510984568758152795681634e222L, \ + 0.1118248651196004307449963076076169029976e225L, \ + 0.1487270706090685728908450891181304809868e227L, \ + 0.1992942746161518876737324194182948445223e229L, \ + 0.269047270731805048359538766214698040105e231L, \ + 0.3659042881952548657689727220519893345429e233L, \ + 0.5012888748274991661034926292112253883237e235L, \ + 0.6917786472619488492228198283114910358867e237L, \ + 0.9615723196941089004197195613529725398826e239L, \ + 0.1346201247571752460587607385894161555836e242L, \ + 0.1898143759076170969428526414110767793728e244L, \ + 0.2695364137888162776588507508037290267094e246L, \ + 0.3854370717180072770521565736493325081944e248L, \ + 0.5550293832739304789551054660550388118e250L, \ + 0.80479260574719919448490292577980627711e252L, \ + 0.1174997204390910823947958271638517164581e255L, \ + 0.1727245890454638911203498659308620231933e257L, \ + 0.2556323917872865588581178015776757943262e259L, \ + 0.380892263763056972698595524350736933546e261L, \ + 0.571338395644585459047893286526105400319e263L, \ + 0.8627209774233240431623188626544191544816e265L, \ + 0.1311335885683452545606724671234717114812e268L, \ + 0.2006343905095682394778288746989117185662e270L, \ + 0.308976961384735088795856467036324046592e272L, \ + 0.4789142901463393876335775239063022722176e274L, \ + 0.7471062926282894447083809372938315446595e276L, \ + 0.1172956879426414428192158071551315525115e279L, \ + 0.1853271869493734796543609753051078529682e281L, \ + 0.2946702272495038326504339507351214862195e283L, \ + 0.4714723635992061322406943211761943779512e285L, \ + 0.7590705053947218729075178570936729485014e287L, \ + 0.1229694218739449434110178928491750176572e290L, \ + 0.2004401576545302577599591653441552787813e292L, \ + 0.3287218585534296227263330311644146572013e294L, \ + 0.5423910666131588774984495014212841843822e296L, \ + 0.9003691705778437366474261723593317460744e298L, \ + 0.1503616514864999040201201707840084015944e301L, \ + 0.2526075744973198387538018869171341146786e303L, \ + 0.4269068009004705274939251888899566538069e305L, \ + 0.7257415615307998967396728211129263114717e307L \ + }} + template struct factorials; @@ -24,21 +530,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1, - 1, - 2, - 6, - 24, - 120 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_INT_1) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 1>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 1>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_INT_1); template struct factorials::value && sizeof(T) == 1>::type> { @@ -49,21 +550,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1, - 1, - 2, - 6, - 24, - 120 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_UINT_1) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 1>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 1>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_UINT_1); template struct factorials::value && sizeof(T) == 2>::type> { @@ -74,23 +570,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1, - 1, - 2, - 6, - 24, - 120, - 720, - 5040 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_INT_2) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 2>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 2>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_INT_2); template struct factorials::value && sizeof(T) == 2>::type> { @@ -101,24 +590,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1, - 1, - 2, - 6, - 24, - 120, - 720, - 5040, - 40320 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_UINT_2) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 2>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 2>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_UINT_2); template struct factorials::value && sizeof(T) == 4>::type> { @@ -129,27 +610,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1, - 1, - 2, - 6, - 24, - 120, - 720, - 5040, - 40320, - 362880, - 3628800, - 39916800 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_INT_4) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 4>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 4>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_INT_4); template struct factorials::value && sizeof(T) == 4>::type> { @@ -160,27 +630,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1, - 1, - 2, - 6, - 24, - 120, - 720, - 5040, - 40320, - 362880, - 3628800, - 39916800 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_UINT_4) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 4>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 4>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_UINT_4); template struct factorials::value && sizeof(T) == 8>::type> { @@ -191,36 +650,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - INT64_C(1), - INT64_C(1), - INT64_C(2), - INT64_C(6), - INT64_C(24), - INT64_C(120), - INT64_C(720), - INT64_C(5040), - INT64_C(40320), - INT64_C(362880), - INT64_C(3628800), - INT64_C(39916800), - INT64_C(479001600), - INT64_C(6227020800), - INT64_C(87178291200), - INT64_C(1307674368000), - INT64_C(20922789888000), - INT64_C(355687428096000), - INT64_C(6402373705728000), - INT64_C(121645100408832000), - INT64_C(2432902008176640000) - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_INT_8) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 8>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 8>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_INT_8); template struct factorials::value && sizeof(T) == 8>::type> { @@ -231,36 +670,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - UINT64_C(1), - UINT64_C(1), - UINT64_C(2), - UINT64_C(6), - UINT64_C(24), - UINT64_C(120), - UINT64_C(720), - UINT64_C(5040), - UINT64_C(40320), - UINT64_C(362880), - UINT64_C(3628800), - UINT64_C(39916800), - UINT64_C(479001600), - UINT64_C(6227020800), - UINT64_C(87178291200), - UINT64_C(1307674368000), - UINT64_C(20922789888000), - UINT64_C(355687428096000), - UINT64_C(6402373705728000), - UINT64_C(121645100408832000), - UINT64_C(2432902008176640000) - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_UINT_8) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 8>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value && sizeof(T) == 8>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_UINT_8); template struct factorials::value>::type> { @@ -271,50 +690,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1.0F, - 1.0F, - 2.0F, - 6.0F, - 24.0F, - 120.0F, - 720.0F, - 5040.0F, - 40320.0F, - 362880.0F, - 3628800.0F, - 39916800.0F, - 479001600.0F, - 6227020800.0F, - 87178291200.0F, - 1307674368000.0F, - 20922789888000.0F, - 355687428096000.0F, - 6402373705728000.0F, - 121645100408832000.0F, - 0.243290200817664e19F, - 0.5109094217170944e20F, - 0.112400072777760768e22F, - 0.2585201673888497664e23F, - 0.62044840173323943936e24F, - 0.15511210043330985984e26F, - 0.403291461126605635584e27F, - 0.10888869450418352160768e29F, - 0.304888344611713860501504e30F, - 0.8841761993739701954543616e31F, - 0.26525285981219105863630848e33F, - 0.822283865417792281772556288e34F, - 0.26313083693369353016721801216e36F, - 0.868331761881188649551819440128e37F, - 0.29523279903960414084761860964352e39F - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_FLOAT) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_FLOAT); template struct factorials::value>::type> { @@ -325,186 +710,16 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1.0, - 1.0, - 2.0, - 6.0, - 24.0, - 120.0, - 720.0, - 5040.0, - 40320.0, - 362880.0, - 3628800.0, - 39916800.0, - 479001600.0, - 6227020800.0, - 87178291200.0, - 1307674368000.0, - 20922789888000.0, - 355687428096000.0, - 6402373705728000.0, - 121645100408832000.0, - 0.243290200817664e19, - 0.5109094217170944e20, - 0.112400072777760768e22, - 0.2585201673888497664e23, - 0.62044840173323943936e24, - 0.15511210043330985984e26, - 0.403291461126605635584e27, - 0.10888869450418352160768e29, - 0.304888344611713860501504e30, - 0.8841761993739701954543616e31, - 0.26525285981219105863630848e33, - 0.822283865417792281772556288e34, - 0.26313083693369353016721801216e36, - 0.868331761881188649551819440128e37, - 0.29523279903960414084761860964352e39, - 0.103331479663861449296666513375232e41, - 0.3719933267899012174679994481508352e42, - 0.137637530912263450463159795815809024e44, - 0.5230226174666011117600072241000742912e45, - 0.203978820811974433586402817399028973568e47, - 0.815915283247897734345611269596115894272e48, - 0.3345252661316380710817006205344075166515e50, - 0.1405006117752879898543142606244511569936e52, - 0.6041526306337383563735513206851399750726e53, - 0.265827157478844876804362581101461589032e55, - 0.1196222208654801945619631614956577150644e57, - 0.5502622159812088949850305428800254892962e58, - 0.2586232415111681806429643551536119799692e60, - 0.1241391559253607267086228904737337503852e62, - 0.6082818640342675608722521633212953768876e63, - 0.3041409320171337804361260816606476884438e65, - 0.1551118753287382280224243016469303211063e67, - 0.8065817517094387857166063685640376697529e68, - 0.427488328406002556429801375338939964969e70, - 0.2308436973392413804720927426830275810833e72, - 0.1269640335365827592596510084756651695958e74, - 0.7109985878048634518540456474637249497365e75, - 0.4052691950487721675568060190543232213498e77, - 0.2350561331282878571829474910515074683829e79, - 0.1386831185456898357379390197203894063459e81, - 0.8320987112741390144276341183223364380754e82, - 0.507580213877224798800856812176625227226e84, - 0.3146997326038793752565312235495076408801e86, - 0.1982608315404440064116146708361898137545e88, - 0.1268869321858841641034333893351614808029e90, - 0.8247650592082470666723170306785496252186e91, - 0.5443449390774430640037292402478427526443e93, - 0.3647111091818868528824985909660546442717e95, - 0.2480035542436830599600990418569171581047e97, - 0.1711224524281413113724683388812728390923e99, - 0.1197857166996989179607278372168909873646e101, - 0.8504785885678623175211676442399260102886e102, - 0.6123445837688608686152407038527467274078e104, - 0.4470115461512684340891257138125051110077e106, - 0.3307885441519386412259530282212537821457e108, - 0.2480914081139539809194647711659403366093e110, - 0.188549470166605025498793226086114655823e112, - 0.1451830920282858696340707840863082849837e114, - 0.1132428117820629783145752115873204622873e116, - 0.8946182130782975286851441715398316520698e117, - 0.7156945704626380229481153372318653216558e119, - 0.5797126020747367985879734231578109105412e121, - 0.4753643337012841748421382069894049466438e123, - 0.3945523969720658651189747118012061057144e125, - 0.3314240134565353266999387579130131288001e127, - 0.2817104114380550276949479442260611594801e129, - 0.2422709538367273238176552320344125971528e131, - 0.210775729837952771721360051869938959523e133, - 0.1854826422573984391147968456455462843802e135, - 0.1650795516090846108121691926245361930984e137, - 0.1485715964481761497309522733620825737886e139, - 0.1352001527678402962551665687594951421476e141, - 0.1243841405464130725547532432587355307758e143, - 0.1156772507081641574759205162306240436215e145, - 0.1087366156656743080273652852567866010042e147, - 0.103299784882390592625997020993947270954e149, - 0.9916779348709496892095714015418938011582e150, - 0.9619275968248211985332842594956369871234e152, - 0.942689044888324774562618574305724247381e154, - 0.9332621544394415268169923885626670049072e156, - 0.9332621544394415268169923885626670049072e158, - 0.9425947759838359420851623124482936749562e160, - 0.9614466715035126609268655586972595484554e162, - 0.990290071648618040754671525458177334909e164, - 0.1029901674514562762384858386476504428305e167, - 0.1081396758240290900504101305800329649721e169, - 0.1146280563734708354534347384148349428704e171, - 0.1226520203196137939351751701038733888713e173, - 0.132464181945182897449989183712183259981e175, - 0.1443859583202493582204882102462797533793e177, - 0.1588245541522742940425370312709077287172e179, - 0.1762952551090244663872161047107075788761e181, - 0.1974506857221074023536820372759924883413e183, - 0.2231192748659813646596607021218715118256e185, - 0.2543559733472187557120132004189335234812e187, - 0.2925093693493015690688151804817735520034e189, - 0.339310868445189820119825609358857320324e191, - 0.396993716080872089540195962949863064779e193, - 0.4684525849754290656574312362808384164393e195, - 0.5574585761207605881323431711741977155627e197, - 0.6689502913449127057588118054090372586753e199, - 0.8094298525273443739681622845449350829971e201, - 0.9875044200833601362411579871448208012564e203, - 0.1214630436702532967576624324188129585545e206, - 0.1506141741511140879795014161993280686076e208, - 0.1882677176888926099743767702491600857595e210, - 0.237217324288004688567714730513941708057e212, - 0.3012660018457659544809977077527059692324e214, - 0.3856204823625804217356770659234636406175e216, - 0.4974504222477287440390234150412680963966e218, - 0.6466855489220473672507304395536485253155e220, - 0.8471580690878820510984568758152795681634e222, - 0.1118248651196004307449963076076169029976e225, - 0.1487270706090685728908450891181304809868e227, - 0.1992942746161518876737324194182948445223e229, - 0.269047270731805048359538766214698040105e231, - 0.3659042881952548657689727220519893345429e233, - 0.5012888748274991661034926292112253883237e235, - 0.6917786472619488492228198283114910358867e237, - 0.9615723196941089004197195613529725398826e239, - 0.1346201247571752460587607385894161555836e242, - 0.1898143759076170969428526414110767793728e244, - 0.2695364137888162776588507508037290267094e246, - 0.3854370717180072770521565736493325081944e248, - 0.5550293832739304789551054660550388118e250, - 0.80479260574719919448490292577980627711e252, - 0.1174997204390910823947958271638517164581e255, - 0.1727245890454638911203498659308620231933e257, - 0.2556323917872865588581178015776757943262e259, - 0.380892263763056972698595524350736933546e261, - 0.571338395644585459047893286526105400319e263, - 0.8627209774233240431623188626544191544816e265, - 0.1311335885683452545606724671234717114812e268, - 0.2006343905095682394778288746989117185662e270, - 0.308976961384735088795856467036324046592e272, - 0.4789142901463393876335775239063022722176e274, - 0.7471062926282894447083809372938315446595e276, - 0.1172956879426414428192158071551315525115e279, - 0.1853271869493734796543609753051078529682e281, - 0.2946702272495038326504339507351214862195e283, - 0.4714723635992061322406943211761943779512e285, - 0.7590705053947218729075178570936729485014e287, - 0.1229694218739449434110178928491750176572e290, - 0.2004401576545302577599591653441552787813e292, - 0.3287218585534296227263330311644146572013e294, - 0.5423910666131588774984495014212841843822e296, - 0.9003691705778437366474261723593317460744e298, - 0.1503616514864999040201201707840084015944e301, - 0.2526075744973198387538018869171341146786e303, - 0.4269068009004705274939251888899566538069e305, - 0.7257415615307998967396728211129263114717e307 - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_DOUBLE) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_DOUBLE); template struct factorials::value>::type> { @@ -515,186 +730,28 @@ namespace sprout { public: typedef sprout::array table_type; public: - SPROUT_STATIC_CONSTEXPR table_type table = table_type{{ - 1.0L, - 1.0L, - 2.0L, - 6.0L, - 24.0L, - 120.0L, - 720.0L, - 5040.0L, - 40320.0L, - 362880.0L, - 3628800.0L, - 39916800.0L, - 479001600.0L, - 6227020800.0L, - 87178291200.0L, - 1307674368000.0L, - 20922789888000.0L, - 355687428096000.0L, - 6402373705728000.0L, - 121645100408832000.0L, - 0.243290200817664e19L, - 0.5109094217170944e20L, - 0.112400072777760768e22L, - 0.2585201673888497664e23L, - 0.62044840173323943936e24L, - 0.15511210043330985984e26L, - 0.403291461126605635584e27L, - 0.10888869450418352160768e29L, - 0.304888344611713860501504e30L, - 0.8841761993739701954543616e31L, - 0.26525285981219105863630848e33L, - 0.822283865417792281772556288e34L, - 0.26313083693369353016721801216e36L, - 0.868331761881188649551819440128e37L, - 0.29523279903960414084761860964352e39L, - 0.103331479663861449296666513375232e41L, - 0.3719933267899012174679994481508352e42L, - 0.137637530912263450463159795815809024e44L, - 0.5230226174666011117600072241000742912e45L, - 0.203978820811974433586402817399028973568e47L, - 0.815915283247897734345611269596115894272e48L, - 0.3345252661316380710817006205344075166515e50L, - 0.1405006117752879898543142606244511569936e52L, - 0.6041526306337383563735513206851399750726e53L, - 0.265827157478844876804362581101461589032e55L, - 0.1196222208654801945619631614956577150644e57L, - 0.5502622159812088949850305428800254892962e58L, - 0.2586232415111681806429643551536119799692e60L, - 0.1241391559253607267086228904737337503852e62L, - 0.6082818640342675608722521633212953768876e63L, - 0.3041409320171337804361260816606476884438e65L, - 0.1551118753287382280224243016469303211063e67L, - 0.8065817517094387857166063685640376697529e68L, - 0.427488328406002556429801375338939964969e70L, - 0.2308436973392413804720927426830275810833e72L, - 0.1269640335365827592596510084756651695958e74L, - 0.7109985878048634518540456474637249497365e75L, - 0.4052691950487721675568060190543232213498e77L, - 0.2350561331282878571829474910515074683829e79L, - 0.1386831185456898357379390197203894063459e81L, - 0.8320987112741390144276341183223364380754e82L, - 0.507580213877224798800856812176625227226e84L, - 0.3146997326038793752565312235495076408801e86L, - 0.1982608315404440064116146708361898137545e88L, - 0.1268869321858841641034333893351614808029e90L, - 0.8247650592082470666723170306785496252186e91L, - 0.5443449390774430640037292402478427526443e93L, - 0.3647111091818868528824985909660546442717e95L, - 0.2480035542436830599600990418569171581047e97L, - 0.1711224524281413113724683388812728390923e99L, - 0.1197857166996989179607278372168909873646e101L, - 0.8504785885678623175211676442399260102886e102L, - 0.6123445837688608686152407038527467274078e104L, - 0.4470115461512684340891257138125051110077e106L, - 0.3307885441519386412259530282212537821457e108L, - 0.2480914081139539809194647711659403366093e110L, - 0.188549470166605025498793226086114655823e112L, - 0.1451830920282858696340707840863082849837e114L, - 0.1132428117820629783145752115873204622873e116L, - 0.8946182130782975286851441715398316520698e117L, - 0.7156945704626380229481153372318653216558e119L, - 0.5797126020747367985879734231578109105412e121L, - 0.4753643337012841748421382069894049466438e123L, - 0.3945523969720658651189747118012061057144e125L, - 0.3314240134565353266999387579130131288001e127L, - 0.2817104114380550276949479442260611594801e129L, - 0.2422709538367273238176552320344125971528e131L, - 0.210775729837952771721360051869938959523e133L, - 0.1854826422573984391147968456455462843802e135L, - 0.1650795516090846108121691926245361930984e137L, - 0.1485715964481761497309522733620825737886e139L, - 0.1352001527678402962551665687594951421476e141L, - 0.1243841405464130725547532432587355307758e143L, - 0.1156772507081641574759205162306240436215e145L, - 0.1087366156656743080273652852567866010042e147L, - 0.103299784882390592625997020993947270954e149L, - 0.9916779348709496892095714015418938011582e150L, - 0.9619275968248211985332842594956369871234e152L, - 0.942689044888324774562618574305724247381e154L, - 0.9332621544394415268169923885626670049072e156L, - 0.9332621544394415268169923885626670049072e158L, - 0.9425947759838359420851623124482936749562e160L, - 0.9614466715035126609268655586972595484554e162L, - 0.990290071648618040754671525458177334909e164L, - 0.1029901674514562762384858386476504428305e167L, - 0.1081396758240290900504101305800329649721e169L, - 0.1146280563734708354534347384148349428704e171L, - 0.1226520203196137939351751701038733888713e173L, - 0.132464181945182897449989183712183259981e175L, - 0.1443859583202493582204882102462797533793e177L, - 0.1588245541522742940425370312709077287172e179L, - 0.1762952551090244663872161047107075788761e181L, - 0.1974506857221074023536820372759924883413e183L, - 0.2231192748659813646596607021218715118256e185L, - 0.2543559733472187557120132004189335234812e187L, - 0.2925093693493015690688151804817735520034e189L, - 0.339310868445189820119825609358857320324e191L, - 0.396993716080872089540195962949863064779e193L, - 0.4684525849754290656574312362808384164393e195L, - 0.5574585761207605881323431711741977155627e197L, - 0.6689502913449127057588118054090372586753e199L, - 0.8094298525273443739681622845449350829971e201L, - 0.9875044200833601362411579871448208012564e203L, - 0.1214630436702532967576624324188129585545e206L, - 0.1506141741511140879795014161993280686076e208L, - 0.1882677176888926099743767702491600857595e210L, - 0.237217324288004688567714730513941708057e212L, - 0.3012660018457659544809977077527059692324e214L, - 0.3856204823625804217356770659234636406175e216L, - 0.4974504222477287440390234150412680963966e218L, - 0.6466855489220473672507304395536485253155e220L, - 0.8471580690878820510984568758152795681634e222L, - 0.1118248651196004307449963076076169029976e225L, - 0.1487270706090685728908450891181304809868e227L, - 0.1992942746161518876737324194182948445223e229L, - 0.269047270731805048359538766214698040105e231L, - 0.3659042881952548657689727220519893345429e233L, - 0.5012888748274991661034926292112253883237e235L, - 0.6917786472619488492228198283114910358867e237L, - 0.9615723196941089004197195613529725398826e239L, - 0.1346201247571752460587607385894161555836e242L, - 0.1898143759076170969428526414110767793728e244L, - 0.2695364137888162776588507508037290267094e246L, - 0.3854370717180072770521565736493325081944e248L, - 0.5550293832739304789551054660550388118e250L, - 0.80479260574719919448490292577980627711e252L, - 0.1174997204390910823947958271638517164581e255L, - 0.1727245890454638911203498659308620231933e257L, - 0.2556323917872865588581178015776757943262e259L, - 0.380892263763056972698595524350736933546e261L, - 0.571338395644585459047893286526105400319e263L, - 0.8627209774233240431623188626544191544816e265L, - 0.1311335885683452545606724671234717114812e268L, - 0.2006343905095682394778288746989117185662e270L, - 0.308976961384735088795856467036324046592e272L, - 0.4789142901463393876335775239063022722176e274L, - 0.7471062926282894447083809372938315446595e276L, - 0.1172956879426414428192158071551315525115e279L, - 0.1853271869493734796543609753051078529682e281L, - 0.2946702272495038326504339507351214862195e283L, - 0.4714723635992061322406943211761943779512e285L, - 0.7590705053947218729075178570936729485014e287L, - 0.1229694218739449434110178928491750176572e290L, - 0.2004401576545302577599591653441552787813e292L, - 0.3287218585534296227263330311644146572013e294L, - 0.5423910666131588774984495014212841843822e296L, - 0.9003691705778437366474261723593317460744e298L, - 0.1503616514864999040201201707840084015944e301L, - 0.2526075744973198387538018869171341146786e303L, - 0.4269068009004705274939251888899566538069e305L, - 0.7257415615307998967396728211129263114717e307L - }}; + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_FACTORIAL_TABLE_DEF_LONG_DOUBLE) + ; }; template - SPROUT_CONSTEXPR typename sprout::math::detail::factorials< + SPROUT_CONSTEXPR_OR_CONST typename sprout::math::detail::factorials< T, typename std::enable_if::value>::type >::table_type sprout::math::detail::factorials< T, typename std::enable_if::value>::type - >::table; + >::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_FACTORIAL_TABLE_DEF_LONG_DOUBLE); + +# undef SPROUT_FACTORIAL_TABLE_DEF_INT_1 +# undef SPROUT_FACTORIAL_TABLE_DEF_UINT_1 +# undef SPROUT_FACTORIAL_TABLE_DEF_INT_2 +# undef SPROUT_FACTORIAL_TABLE_DEF_UINT_2 +# undef SPROUT_FACTORIAL_TABLE_DEF_INT_4 +# undef SPROUT_FACTORIAL_TABLE_DEF_UINT_4 +# undef SPROUT_FACTORIAL_TABLE_DEF_INT_8 +# undef SPROUT_FACTORIAL_TABLE_DEF_UINT_8 +# undef SPROUT_FACTORIAL_TABLE_DEF_FLOAT +# undef SPROUT_FACTORIAL_TABLE_DEF_DOUBLE +# undef SPROUT_FACTORIAL_TABLE_DEF_LONG_DOUBLE } // namespace detail // // factorial_limit diff --git a/sprout/pit.hpp b/sprout/pit.hpp index e9841b80..44759b25 100644 --- a/sprout/pit.hpp +++ b/sprout/pit.hpp @@ -127,7 +127,7 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR typename sprout::pit::size_type sprout::pit::static_size; + SPROUT_CONSTEXPR_OR_CONST typename sprout::pit::size_type sprout::pit::static_size; // // operator== diff --git a/sprout/random/binomial_distribution.hpp b/sprout/random/binomial_distribution.hpp index 3a9553d9..8753f5cc 100644 --- a/sprout/random/binomial_distribution.hpp +++ b/sprout/random/binomial_distribution.hpp @@ -18,24 +18,32 @@ namespace sprout { namespace random { namespace detail { +# define SPROUT_BINOMIAL_TABLE_DEF \ + table_type{{ \ + 1, \ + 1, \ + 2, \ + 6, \ + 24, \ + 120 \ + }} + template struct binomial_table { - public: - SPROUT_STATIC_CONSTEXPR sprout::array table = sprout::array{{ - 0.08106146679532726, - 0.04134069595540929, - 0.02767792568499834, - 0.02079067210376509, - 0.01664469118982119, - 0.01387612882307075, - 0.01189670994589177, - 0.01041126526197209, - 0.009255462182712733, - 0.008330563433362871 - }}; + public: + typedef sprout::array table_type; + public: + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_BINOMIAL_TABLE_DEF) + ; }; template - SPROUT_CONSTEXPR sprout::array sprout::random::detail::binomial_table::table; + SPROUT_CONSTEXPR_OR_CONST typename sprout::random::detail::binomial_table::table_type + sprout::random::detail::binomial_table::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_BINOMIAL_TABLE_DEF) + ; + +# undef SPROUT_BINOMIAL_TABLE_DEF } // namespace detail // // binomial_distribution diff --git a/sprout/random/inversive_congruential.hpp b/sprout/random/inversive_congruential.hpp index 039dfb61..aa3a7a14 100644 --- a/sprout/random/inversive_congruential.hpp +++ b/sprout/random/inversive_congruential.hpp @@ -111,13 +111,13 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR IntType sprout::random::inversive_congruential_engine::multiplier; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::inversive_congruential_engine::multiplier; template - SPROUT_CONSTEXPR IntType sprout::random::inversive_congruential_engine::increment; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::inversive_congruential_engine::increment; template - SPROUT_CONSTEXPR IntType sprout::random::inversive_congruential_engine::modulus; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::inversive_congruential_engine::modulus; template - SPROUT_CONSTEXPR IntType sprout::random::inversive_congruential_engine::default_seed; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::inversive_congruential_engine::default_seed; // // hellekalek1995 diff --git a/sprout/random/linear_congruential.hpp b/sprout/random/linear_congruential.hpp index 444ef144..ad7ea1e6 100644 --- a/sprout/random/linear_congruential.hpp +++ b/sprout/random/linear_congruential.hpp @@ -114,13 +114,13 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR IntType sprout::random::linear_congruential_engine::multiplier; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::linear_congruential_engine::multiplier; template - SPROUT_CONSTEXPR IntType sprout::random::linear_congruential_engine::increment; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::linear_congruential_engine::increment; template - SPROUT_CONSTEXPR IntType sprout::random::linear_congruential_engine::modulus; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::linear_congruential_engine::modulus; template - SPROUT_CONSTEXPR IntType sprout::random::linear_congruential_engine::default_seed; + SPROUT_CONSTEXPR_OR_CONST IntType sprout::random::linear_congruential_engine::default_seed; // // minstd_rand0 diff --git a/sprout/random/linear_feedback_shift.hpp b/sprout/random/linear_feedback_shift.hpp index 0080ba19..9d5b0611 100644 --- a/sprout/random/linear_feedback_shift.hpp +++ b/sprout/random/linear_feedback_shift.hpp @@ -97,15 +97,15 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR int sprout::random::linear_feedback_shift_engine::word_size; + SPROUT_CONSTEXPR_OR_CONST int sprout::random::linear_feedback_shift_engine::word_size; template - SPROUT_CONSTEXPR int sprout::random::linear_feedback_shift_engine::exponent1; + SPROUT_CONSTEXPR_OR_CONST int sprout::random::linear_feedback_shift_engine::exponent1; template - SPROUT_CONSTEXPR int sprout::random::linear_feedback_shift_engine::exponent2; + SPROUT_CONSTEXPR_OR_CONST int sprout::random::linear_feedback_shift_engine::exponent2; template - SPROUT_CONSTEXPR int sprout::random::linear_feedback_shift_engine::step_size; + SPROUT_CONSTEXPR_OR_CONST int sprout::random::linear_feedback_shift_engine::step_size; template - SPROUT_CONSTEXPR UIntType sprout::random::linear_feedback_shift_engine::default_seed; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::linear_feedback_shift_engine::default_seed; } // namespace random using sprout::random::linear_feedback_shift_engine; diff --git a/sprout/random/mersenne_twister.hpp b/sprout/random/mersenne_twister.hpp index 14302e18..84306056 100644 --- a/sprout/random/mersenne_twister.hpp +++ b/sprout/random/mersenne_twister.hpp @@ -372,33 +372,33 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::word_size; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::word_size; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::state_size; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::state_size; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::shift_size; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::shift_size; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::mask_bits; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::mask_bits; template - SPROUT_CONSTEXPR UIntType sprout::random::mersenne_twister_engine::xor_mask; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::mersenne_twister_engine::xor_mask; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::tempering_u; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::tempering_u; template - SPROUT_CONSTEXPR UIntType sprout::random::mersenne_twister_engine::tempering_d; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::mersenne_twister_engine::tempering_d; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::tempering_s; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::tempering_s; template - SPROUT_CONSTEXPR UIntType sprout::random::mersenne_twister_engine::tempering_b; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::mersenne_twister_engine::tempering_b; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::tempering_t; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::tempering_t; template - SPROUT_CONSTEXPR UIntType sprout::random::mersenne_twister_engine::tempering_c; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::mersenne_twister_engine::tempering_c; template - SPROUT_CONSTEXPR std::size_t sprout::random::mersenne_twister_engine::tempering_l; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::mersenne_twister_engine::tempering_l; template - SPROUT_CONSTEXPR UIntType sprout::random::mersenne_twister_engine::initialization_multiplier; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::mersenne_twister_engine::initialization_multiplier; template - SPROUT_CONSTEXPR UIntType sprout::random::mersenne_twister_engine::default_seed; + SPROUT_CONSTEXPR_OR_CONST UIntType sprout::random::mersenne_twister_engine::default_seed; // // mt11213b diff --git a/sprout/random/shuffle_order.hpp b/sprout/random/shuffle_order.hpp index befb4efa..436103ad 100644 --- a/sprout/random/shuffle_order.hpp +++ b/sprout/random/shuffle_order.hpp @@ -164,9 +164,9 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR std::size_t sprout::random::shuffle_order_engine::buffer_size; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::shuffle_order_engine::buffer_size; template - SPROUT_CONSTEXPR std::size_t sprout::random::shuffle_order_engine::table_size; + SPROUT_CONSTEXPR_OR_CONST std::size_t sprout::random::shuffle_order_engine::table_size; // // knuth_b diff --git a/sprout/random/xor_combine.hpp b/sprout/random/xor_combine.hpp index 7de0e869..a57ea38c 100644 --- a/sprout/random/xor_combine.hpp +++ b/sprout/random/xor_combine.hpp @@ -81,9 +81,9 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR int sprout::random::xor_combine_engine::shift1; + SPROUT_CONSTEXPR_OR_CONST int sprout::random::xor_combine_engine::shift1; template - SPROUT_CONSTEXPR int sprout::random::xor_combine_engine::shift2; + SPROUT_CONSTEXPR_OR_CONST int sprout::random::xor_combine_engine::shift2; } // namespace random using sprout::random::xor_combine_engine; diff --git a/sprout/range/adaptor.hpp b/sprout/range/adaptor.hpp index 56ee0a14..886f77f7 100644 --- a/sprout/range/adaptor.hpp +++ b/sprout/range/adaptor.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include diff --git a/sprout/range/adaptor/sized.hpp b/sprout/range/adaptor/sized.hpp new file mode 100644 index 00000000..4caaec08 --- /dev/null +++ b/sprout/range/adaptor/sized.hpp @@ -0,0 +1,152 @@ +#ifndef SPROUT_RANGE_ADAPTOR_SIZED_HPP +#define SPROUT_RANGE_ADAPTOR_SIZED_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace sprout { + namespace adaptors { + namespace detail { + template::size_type Size, typename = void> + class sized_impl; + + template::size_type Size> + class sized_impl< + Range, Size, + typename std::enable_if >::value>::type + > { + public: + SPROUT_STATIC_CONSTEXPR typename sprout::container_traits::size_type + static_size = Size < sprout::container_traits::static_size ? Size + : sprout::container_traits::static_size + ; + static SPROUT_CONSTEXPR typename sprout::container_traits::size_type fixed_size() { + return static_size; + } + }; + template::size_type Size> + SPROUT_CONSTEXPR_OR_CONST typename sprout::container_traits::size_type sized_impl< + Range, Size, + typename std::enable_if >::value>::type + >::static_size; + + template::size_type Size> + class sized_impl< + Range, Size, + typename std::enable_if >::value>::type + > { + public: + SPROUT_STATIC_CONSTEXPR typename sprout::container_traits::size_type static_size = Size; + static SPROUT_CONSTEXPR typename sprout::container_traits::size_type fixed_size() { + return static_size; + } + }; + template::size_type Size> + SPROUT_CONSTEXPR_OR_CONST typename sprout::container_traits::size_type sized_impl< + Range, Size, + typename std::enable_if >::value>::type + >::static_size; + } // namespace detail + + // + // sized_range + // + template::size_type Size> + class sized_range + : public sprout::range::range_container< + typename sprout::container_traits::iterator + > + , public sprout::adaptors::detail::sized_impl + { + public: + typedef Range range_type; + typedef sprout::range::range_container< + typename sprout::container_traits::iterator + > base_type; + private: + typedef sprout::adaptors::detail::sized_impl sized_impl_type; + public: + sized_range() = default; + sized_range(sized_range const&) = default; + explicit SPROUT_CONSTEXPR sized_range(range_type& range) + : base_type( + sprout::begin(range), + sized_impl_type::static_size < sprout::size(range) + ? sprout::next(sprout::begin(range), sized_impl_type::static_size) + : sprout::end(range) + ) + {} + }; + + // + // size_holder + // + template + class size_holder + : public std::integral_constant + {}; + + // + // sized + // + template + inline SPROUT_CONSTEXPR sprout::adaptors::size_holder sized() { + return sprout::adaptors::size_holder(); + } + + // + // operator| + // + template + inline SPROUT_CONSTEXPR sprout::adaptors::sized_range< + typename std::remove_reference::type>::type, + Size + > + operator|(Range&& lhs, sprout::adaptors::size_holder const& rhs) { + return sprout::adaptors::sized_range< + typename std::remove_reference::type>::type, + Size + >( + sprout::lvalue_forward(lhs) + ); + } + } // namespace adaptors + + // + // container_construct_traits + // + template::size_type Size> + struct container_construct_traits > { + public: + typedef typename sprout::container_construct_traits::copied_type copied_type; + public: + template + static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) { + return sprout::range::fixed::copy(sprout::forward(cont), sprout::pit()); + } + template + static SPROUT_CONSTEXPR copied_type make(Args&&... args) { + return sprout::make(sprout::forward(args)...); + } + template + static SPROUT_CONSTEXPR copied_type remake( + Cont&& cont, + typename sprout::container_traits >::difference_type size, + Args&&... args + ) + { + return sprout::remake(sprout::forward(cont), size, sprout::forward(args)...); + } + }; +} // namespace sprout + +#endif // #ifndef SPROUT_RANGE_ADAPTOR_SIZED_HPP diff --git a/sprout/string/string.hpp b/sprout/string/string.hpp index 5ecf31ec..8e4254d4 100644 --- a/sprout/string/string.hpp +++ b/sprout/string/string.hpp @@ -430,9 +430,9 @@ namespace sprout { #endif }; template - SPROUT_CONSTEXPR typename sprout::basic_string::size_type sprout::basic_string::npos; + SPROUT_CONSTEXPR_OR_CONST typename sprout::basic_string::size_type sprout::basic_string::npos; template - SPROUT_CONSTEXPR typename sprout::basic_string::size_type sprout::basic_string::static_size; + SPROUT_CONSTEXPR_OR_CONST typename sprout::basic_string::size_type sprout::basic_string::static_size; // // swap diff --git a/sprout/sub_array.hpp b/sprout/sub_array.hpp index be629a7a..05a54c43 100644 --- a/sprout/sub_array.hpp +++ b/sprout/sub_array.hpp @@ -356,7 +356,7 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR typename sprout::sub_array::size_type sprout::sub_array::static_size; + SPROUT_CONSTEXPR_OR_CONST typename sprout::sub_array::size_type sprout::sub_array::static_size; // // swap diff --git a/sprout/tuple/tuple.hpp b/sprout/tuple/tuple.hpp index fbbd6200..9e98b93a 100644 --- a/sprout/tuple/tuple.hpp +++ b/sprout/tuple/tuple.hpp @@ -378,7 +378,7 @@ namespace sprout { // // ignore // - static SPROUT_CONSTEXPR ignore_t ignore{}; + SPROUT_STATIC_CONSTEXPR ignore_t ignore{}; // // make_tuple diff --git a/sprout/type_traits/inherit_if_xxx.hpp b/sprout/type_traits/inherit_if_xxx.hpp index fe414b01..12d7fe2b 100644 --- a/sprout/type_traits/inherit_if_xxx.hpp +++ b/sprout/type_traits/inherit_if_xxx.hpp @@ -51,7 +51,7 @@ SPROUT_STATIC_CONSTEXPR typename std::decay::type ALIAS = T::CONSTANT; \ }; \ template \ - SPROUT_CONSTEXPR typename std::decay::type NAME< \ + SPROUT_CONSTEXPR_OR_CONST typename std::decay::type NAME< \ T, \ typename std::enable_if::value>::type \ >::ALIAS diff --git a/sprout/uuid/detail/table.hpp b/sprout/uuid/detail/table.hpp index 7f95f637..4bd65b0b 100644 --- a/sprout/uuid/detail/table.hpp +++ b/sprout/uuid/detail/table.hpp @@ -15,48 +15,76 @@ namespace sprout { template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string("0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string("0123456789abcdefABCDEF")) + ; SPROUT_STATIC_CONSTEXPR char dash = '-'; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::uuids::detail::digits::table; - SPROUT_CONSTEXPR char sprout::uuids::detail::digits::dash; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::uuids::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string("0123456789abcdefABCDEF")) + ; + SPROUT_CONSTEXPR_OR_CONST char sprout::uuids::detail::digits::dash; template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(L"0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(L"0123456789abcdefABCDEF")) + ; SPROUT_STATIC_CONSTEXPR wchar_t dash = L'-'; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::uuids::detail::digits::table; - SPROUT_CONSTEXPR wchar_t sprout::uuids::detail::digits::dash; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::uuids::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"0123456789abcdefABCDEF")) + ; + SPROUT_CONSTEXPR_OR_CONST wchar_t sprout::uuids::detail::digits::dash; template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(u"0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(u"0123456789abcdefABCDEF")) + ; SPROUT_STATIC_CONSTEXPR char16_t dash = u'-'; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::uuids::detail::digits::table; - SPROUT_CONSTEXPR char16_t sprout::uuids::detail::digits::dash; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::uuids::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(u"0123456789abcdefABCDEF")) + ; + SPROUT_CONSTEXPR_OR_CONST char16_t sprout::uuids::detail::digits::dash; template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(U"0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(U"0123456789abcdefABCDEF")) + ; SPROUT_STATIC_CONSTEXPR char32_t dash = U'-'; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::uuids::detail::digits::table; - SPROUT_CONSTEXPR char32_t sprout::uuids::detail::digits::dash; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::uuids::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"0123456789abcdefABCDEF")) + ; + SPROUT_CONSTEXPR_OR_CONST char32_t sprout::uuids::detail::digits::dash; template struct values; +# define SPROUT_UUID_TABLE_DEF \ + table_type{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 10, 11, 12, 13, 14, 15}} + template<> struct values { public: - SPROUT_STATIC_CONSTEXPR sprout::array table = sprout::array{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 10, 11, 12, 13, 14, 15}}; + typedef sprout::array table_type; + public: + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_UUID_TABLE_DEF) + ; }; - SPROUT_CONSTEXPR sprout::array sprout::uuids::detail::values::table; + SPROUT_CONSTEXPR_OR_CONST sprout::uuids::detail::values::table_type + sprout::uuids::detail::values::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_UUID_TABLE_DEF) + ; + +# undef SPROUT_UUID_TABLE_DEF } // namespace detail } // namespace uuids } // namespace sprout diff --git a/sprout/weed/detail/bdigits.hpp b/sprout/weed/detail/bdigits.hpp index 961e3dbe..d0c3c02d 100644 --- a/sprout/weed/detail/bdigits.hpp +++ b/sprout/weed/detail/bdigits.hpp @@ -18,42 +18,68 @@ namespace sprout { template<> struct bdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string("01"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string("01")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::bdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::bdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string("01")) + ; template<> struct bdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(L"01"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(L"01")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::bdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::bdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"01")) + ; template<> struct bdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(u"01"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(u"01")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::bdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::bdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(u"01")) + ; template<> struct bdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(U"01"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(U"01")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::bdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::bdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"01")) + ; template struct bvalues; +# define SPROUT_WEED_BDIGITS_TABLE_DEF \ + table_type{{0, 1}} + template<> struct bvalues { public: - SPROUT_STATIC_CONSTEXPR sprout::array table = sprout::array{ - {0, 1} - }; + typedef sprout::array table_type; + public: + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_WEED_BDIGITS_TABLE_DEF) + ; }; - SPROUT_CONSTEXPR sprout::array sprout::weed::detail::bvalues::table; + SPROUT_CONSTEXPR_OR_CONST sprout::weed::detail::bvalues::table_type + sprout::weed::detail::bvalues::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_WEED_BDIGITS_TABLE_DEF) + ; + +# undef SPROUT_WEED_BDIGITS_TABLE_DEF template SPROUT_CONSTEXPR sprout::tuples::tuple bvalue_at(std::size_t i) { diff --git a/sprout/weed/detail/digits.hpp b/sprout/weed/detail/digits.hpp index 6c7bada1..ef3aaa35 100644 --- a/sprout/weed/detail/digits.hpp +++ b/sprout/weed/detail/digits.hpp @@ -18,42 +18,68 @@ namespace sprout { template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string("0123456789"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string("0123456789")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::digits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string("0123456789")) + ; template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(L"0123456789"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(L"0123456789")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::digits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"0123456789")) + ; template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(u"0123456789"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(u"0123456789")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::digits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(u"0123456789")) + ; template<> struct digits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(U"0123456789"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(U"0123456789")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::digits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::digits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"0123456789")) + ; template struct values; +# define SPROUT_WEED_DIGITS_TABLE_DEF \ + table_type{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}} + template<> struct values { public: - SPROUT_STATIC_CONSTEXPR sprout::array table = sprout::array{ - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} - }; + typedef sprout::array table_type; + public: + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_WEED_DIGITS_TABLE_DEF) + ; }; - SPROUT_CONSTEXPR sprout::array sprout::weed::detail::values::table; + SPROUT_CONSTEXPR_OR_CONST sprout::weed::detail::values::table_type + sprout::weed::detail::values::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_WEED_DIGITS_TABLE_DEF) + ; + +# undef SPROUT_WEED_DIGITS_TABLE_DEF template SPROUT_CONSTEXPR sprout::tuples::tuple value_at(std::size_t i) { diff --git a/sprout/weed/detail/odigits.hpp b/sprout/weed/detail/odigits.hpp index 96246843..ab734950 100644 --- a/sprout/weed/detail/odigits.hpp +++ b/sprout/weed/detail/odigits.hpp @@ -18,42 +18,68 @@ namespace sprout { template<> struct odigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string("01234567"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string("01234567")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::odigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::odigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string("01234567")) + ; template<> struct odigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(L"01234567"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(L"01234567")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::odigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::odigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"01234567")) + ; template<> struct odigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(u"01234567"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(u"01234567")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::odigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::odigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(u"01234567")) + ; template<> struct odigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(U"01234567"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(U"01234567")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::odigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::odigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"01234567")) + ; template struct ovalues; +# define SPROUT_WEED_ODIGITS_TABLE_DEF \ + table_type{{0, 1, 2, 3, 4, 5, 6, 7}} + template<> struct ovalues { public: - SPROUT_STATIC_CONSTEXPR sprout::array table = sprout::array{ - {0, 1, 2, 3, 4, 5, 6, 7} - }; + typedef sprout::array table_type; + public: + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_WEED_ODIGITS_TABLE_DEF) + ; }; - SPROUT_CONSTEXPR sprout::array sprout::weed::detail::ovalues::table; + SPROUT_CONSTEXPR_OR_CONST sprout::weed::detail::ovalues::table_type + sprout::weed::detail::ovalues::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_WEED_ODIGITS_TABLE_DEF) + ; + +# undef SPROUT_WEED_ODIGITS_TABLE_DEF template SPROUT_CONSTEXPR sprout::tuples::tuple ovalue_at(std::size_t i) { diff --git a/sprout/weed/detail/xdigits.hpp b/sprout/weed/detail/xdigits.hpp index eea2f619..6908a467 100644 --- a/sprout/weed/detail/xdigits.hpp +++ b/sprout/weed/detail/xdigits.hpp @@ -18,42 +18,68 @@ namespace sprout { template<> struct xdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string("0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string("0123456789abcdefABCDEF")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::xdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::xdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string("0123456789abcdefABCDEF")) + ; template<> struct xdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(L"0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(L"0123456789abcdefABCDEF")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::xdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::xdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"0123456789abcdefABCDEF")) + ; template<> struct xdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(u"0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(u"0123456789abcdefABCDEF")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::xdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::xdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(u"0123456789abcdefABCDEF")) + ; template<> struct xdigits { public: - SPROUT_STATIC_CONSTEXPR sprout::basic_string table = sprout::to_string(U"0123456789abcdefABCDEF"); + SPROUT_STATIC_CONSTEXPR sprout::basic_string table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(sprout::to_string(U"0123456789abcdefABCDEF")) + ; }; - SPROUT_CONSTEXPR sprout::basic_string sprout::weed::detail::xdigits::table; + SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::xdigits::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"0123456789abcdefABCDEF")) + ; template struct xvalues; +# define SPROUT_WEED_XDIGITS_TABLE_DEF \ + table_type{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 10, 11, 12, 13, 14, 15}} + template<> struct xvalues { public: - SPROUT_STATIC_CONSTEXPR sprout::array table = sprout::array{ - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 10, 11, 12, 13, 14, 15} - }; + typedef sprout::array table_type; + public: + SPROUT_STATIC_CONSTEXPR table_type table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(SPROUT_WEED_XDIGITS_TABLE_DEF) + ; }; - SPROUT_CONSTEXPR sprout::array sprout::weed::detail::xvalues::table; + SPROUT_CONSTEXPR_OR_CONST sprout::weed::detail::xvalues::table_type + sprout::weed::detail::xvalues::table + SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(SPROUT_WEED_XDIGITS_TABLE_DEF) + ; + +# undef SPROUT_WEED_XDIGITS_TABLE_DEF template SPROUT_CONSTEXPR sprout::tuples::tuple xvalue_at(std::size_t i) { diff --git a/sprout/weed/parser/lim.hpp b/sprout/weed/parser/lim.hpp index f2b08158..718367b2 100644 --- a/sprout/weed/parser/lim.hpp +++ b/sprout/weed/parser/lim.hpp @@ -62,7 +62,7 @@ namespace sprout { } }; template - SPROUT_CONSTEXPR std::size_t limit_p::limit; + SPROUT_CONSTEXPR_OR_CONST std::size_t limit_p::limit; // // lim diff --git a/testspr/tools.hpp b/testspr/tools.hpp index fd7cc96e..8b798eaf 100644 --- a/testspr/tools.hpp +++ b/testspr/tools.hpp @@ -12,11 +12,15 @@ // // TESTSPR_STATIC_ASSERT // TESTSPR_ASSERT -// TESTSPR_DOUBLE_ASSERT +// TESTSPR_BOTH_ASSERT // #define TESTSPR_STATIC_ASSERT(expr) static_assert(expr, #expr) #define TESTSPR_ASSERT(expr) assert(expr) -#define TESTSPR_DOUBLE_ASSERT(expr) TESTSPR_STATIC_ASSERT(expr); TESTSPR_ASSERT(expr) +#ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR +# define TESTSPR_BOTH_ASSERT(expr) TESTSPR_STATIC_ASSERT(expr); TESTSPR_ASSERT(expr) +#else // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR +# define TESTSPR_BOTH_ASSERT(expr) TESTSPR_ASSERT(expr) +#endif // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR // // TESTSPR_STATIC_WARNING @@ -30,11 +34,15 @@ // // TESTSPR_STATIC_UNCHECKED // TESTSPR_UNCHECKED -// TESTSPR_DOUBLE_UNCHECKED +// TESTSPR_BOTH_UNCHECKED // #define TESTSPR_STATIC_UNCHECKED(expr) TESTSPR_STATIC_WARNING(expr) #define TESTSPR_UNCHECKED(expr) (expr) -#define TESTSPR_DOUBLE_UNCHECKED(expr) TESTSPR_STATIC_UNCHECKED(expr); TESTSPR_UNCHECKED(expr) +#ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR +# define TESTSPR_BOTH_UNCHECKED(expr) TESTSPR_STATIC_UNCHECKED(expr); TESTSPR_UNCHECKED(expr) +#else // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR +# define TESTSPR_BOTH_UNCHECKED(expr) TESTSPR_UNCHECKED(expr) +#endif // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR namespace testspr { //